@opencode/server 0.0.0-dev-256 → 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.
- package/dist/api.js +5 -5
- package/dist/auth.js +1 -1
- package/dist/chunks/{process-059rbh9c.js → fetch-059rbh9c.js} +1 -1
- package/dist/chunks/{process-rha2aq18.js → fetch-0a5jm2na.js} +2 -2
- package/dist/chunks/{process-6z9pvq7p.js → fetch-1je14sn4.js} +1 -1
- package/dist/chunks/{process-qd0r787n.js → fetch-22wspztn.js} +2 -2
- package/dist/chunks/{process-s282vggx.js → fetch-2xcc0x05.js} +1 -1
- package/dist/chunks/{process-ny1j968n.js → fetch-6vs5sqy6.js} +2 -2
- package/dist/chunks/{process-7b9xm1qg.js → fetch-7b9xm1qg.js} +1 -1
- package/dist/chunks/{process-99ggccwj.js → fetch-95h1mmtp.js} +35 -35
- package/dist/chunks/{process-j87xz9bt.js → fetch-9c4eyh8m.js} +3 -3
- package/dist/chunks/{process-cezwbsk5.js → fetch-b2k9041j.js} +1 -1
- package/dist/chunks/fetch-b5vdqx3g.js +61 -0
- package/dist/chunks/{process-yqhefp4s.js → fetch-c6sjpm0r.js} +2 -2
- package/dist/chunks/{process-vsfeekyx.js → fetch-ckkpcd9y.js} +4 -4
- package/dist/chunks/{process-a8jcac9a.js → fetch-dk68ymtv.js} +1 -1
- package/dist/chunks/{process-kkdkqt8j.js → fetch-e46y0tfd.js} +2 -2
- package/dist/chunks/{process-39nnfjx1.js → fetch-e6e4kz0w.js} +4 -4
- package/dist/chunks/{process-03x11xk6.js → fetch-e9906t2e.js} +4 -4
- package/dist/chunks/{process-htyf2qs7.js → fetch-gk0yxcp6.js} +1 -1
- package/dist/chunks/{process-50bbk3b2.js → fetch-gqq6kfhc.js} +3 -3
- package/dist/chunks/{process-4qshv3yw.js → fetch-gsyfxrkq.js} +5 -5
- package/dist/chunks/{process-zcvan105.js → fetch-h072q2hm.js} +1 -1
- package/dist/chunks/{process-4fy84009.js → fetch-h9rcwvg0.js} +1 -1
- package/dist/chunks/{process-az0609r6.js → fetch-hax1v4bv.js} +2 -2
- package/dist/chunks/{process-1v577ncx.js → fetch-hnheq3hv.js} +2 -2
- package/dist/chunks/{process-j4at0y5c.js → fetch-j4at0y5c.js} +1 -1
- package/dist/chunks/{process-b105zy65.js → fetch-j9gxd9me.js} +2 -2
- package/dist/chunks/{process-k3txyteh.js → fetch-kffvskmv.js} +4 -4
- package/dist/chunks/{process-f559fakr.js → fetch-m5rae7m4.js} +2 -2
- package/dist/chunks/{process-btahnm2b.js → fetch-ppma8fcc.js} +3 -3
- package/dist/chunks/{process-xaq6r89c.js → fetch-qb54r15e.js} +13 -13
- package/dist/chunks/{process-2eaky32g.js → fetch-qn8kkfq6.js} +2 -2
- package/dist/chunks/{process-2h6qktqa.js → fetch-r6vmgwff.js} +2 -2
- package/dist/chunks/{process-20hxek78.js → fetch-rztv1fyf.js} +4 -4
- package/dist/chunks/{process-zh6nt7d4.js → fetch-w1r7dqbt.js} +6 -6
- package/dist/chunks/{process-9jza3m7j.js → fetch-w587cpb2.js} +6 -6
- package/dist/chunks/{process-mzs0n5xz.js → fetch-w9jcwh65.js} +7 -7
- package/dist/chunks/{process-qfyg9gb7.js → fetch-wecgp61r.js} +7 -7
- package/dist/chunks/{process-d0edqfxx.js → fetch-wxj3d9av.js} +2 -2
- package/dist/chunks/{process-qcg3sqtb.js → fetch-x8dgc261.js} +2 -2
- package/dist/chunks/{process-5s6gh8sx.js → fetch-xe9t9xr4.js} +2 -2
- package/dist/chunks/{process-b3bmdkga.js → fetch-yet0vexm.js} +1 -1
- package/dist/chunks/{process-te8jwba1.js → fetch-yr4wsvrw.js} +2 -2
- package/dist/chunks/{process-z3e7v67k.js → fetch-z3e7v67k.js} +1 -1
- package/dist/chunks/{process-4q6e7fh8.js → fetch-z59gyc0x.js} +2 -2
- package/dist/chunks/{process-5s0wnsg4.js → fetch-zgt2tacv.js} +3 -3
- package/dist/chunks/{process-h29xjj1e.js → fetch-zrprg5z5.js} +29 -4
- package/dist/cors.js +1 -1
- package/dist/event-feed.js +5 -5
- package/dist/fetch.js +53 -53
- package/dist/handlers/agent.js +6 -6
- package/dist/handlers/command.js +6 -6
- package/dist/handlers/config.js +6 -6
- package/dist/handlers/credential.d.ts +3 -1
- package/dist/handlers/credential.js +7 -6
- package/dist/handlers/debug.js +6 -6
- package/dist/handlers/event.js +7 -7
- package/dist/handlers/form.js +6 -6
- package/dist/handlers/fs.js +6 -6
- package/dist/handlers/generate.js +6 -6
- package/dist/handlers/integration.d.ts +5 -0
- package/dist/handlers/integration.js +9 -7
- package/dist/handlers/location.js +6 -6
- package/dist/handlers/mcp.js +8 -8
- package/dist/handlers/media.js +1 -1
- package/dist/handlers/message.js +7 -7
- package/dist/handlers/migration.js +6 -6
- package/dist/handlers/model.js +6 -6
- package/dist/handlers/permission.js +6 -6
- package/dist/handlers/persistent-pty.js +10 -10
- package/dist/handlers/plugin.js +6 -6
- package/dist/handlers/project.js +6 -6
- package/dist/handlers/provider.js +6 -6
- package/dist/handlers/pty-socket.js +1 -1
- package/dist/handlers/pty.js +8 -8
- package/dist/handlers/reference.js +6 -6
- package/dist/handlers/rpc.js +6 -6
- package/dist/handlers/schedule.js +2 -2
- package/dist/handlers/server.js +9 -9
- package/dist/handlers/session-error.js +1 -1
- package/dist/handlers/session.js +7 -7
- package/dist/handlers/shell.js +6 -6
- package/dist/handlers/skill.js +6 -6
- package/dist/handlers/usage.js +6 -6
- package/dist/handlers/vcs.js +6 -6
- package/dist/handlers/voice.js +6 -6
- package/dist/handlers/websearch.js +6 -6
- package/dist/handlers/worktree.js +6 -6
- package/dist/handlers.js +47 -47
- package/dist/location.js +4 -4
- package/dist/media-uri.js +1 -1
- package/dist/middleware/authorization.js +2 -2
- package/dist/middleware/form-location.js +3 -3
- package/dist/middleware/schema-error.js +1 -1
- package/dist/middleware/session-location.js +3 -3
- package/dist/pairing.js +3 -3
- package/dist/process.js +55 -55
- package/dist/request-tracing.js +1 -1
- package/dist/routes.js +50 -50
- package/dist/server-info.js +1 -1
- package/dist/service-status.js +3 -3
- package/dist/workerd.js +54 -54
- package/package.json +8 -8
- package/dist/chunks/process-5b42hxrf.js +0 -47
- /package/dist/chunks/{process-9rqn6x4v.js → fetch-9rqn6x4v.js} +0 -0
- /package/dist/chunks/{process-bd8755ek.js → fetch-bd8755ek.js} +0 -0
- /package/dist/chunks/{process-h6rt5k9s.js → fetch-h6rt5k9s.js} +0 -0
- /package/dist/chunks/{process-n321d8vm.js → fetch-n321d8vm.js} +0 -0
- /package/dist/chunks/{process-q4bn6dy8.js → fetch-q4bn6dy8.js} +0 -0
- /package/dist/chunks/{process-smaf4a18.js → fetch-smaf4a18.js} +0 -0
- /package/dist/chunks/{process-xthc02cw.js → fetch-xthc02cw.js} +0 -0
- /package/dist/chunks/{process-yc7nft6q.js → fetch-yc7nft6q.js} +0 -0
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./
|
|
2
|
+
layer3
|
|
3
|
+
} from "./fetch-gqq6kfhc.js";
|
|
4
4
|
import {
|
|
5
5
|
formLocationLayer2
|
|
6
|
-
} from "./
|
|
6
|
+
} from "./fetch-gk0yxcp6.js";
|
|
7
7
|
import {
|
|
8
8
|
sessionLocationLayer2
|
|
9
|
-
} from "./
|
|
9
|
+
} from "./fetch-yet0vexm.js";
|
|
10
10
|
import {
|
|
11
11
|
Api2
|
|
12
|
-
} from "./
|
|
12
|
+
} from "./fetch-9c4eyh8m.js";
|
|
13
13
|
import {
|
|
14
14
|
Config2
|
|
15
|
-
} from "./
|
|
15
|
+
} from "./fetch-j4at0y5c.js";
|
|
16
16
|
import {
|
|
17
17
|
CorsConfig2
|
|
18
|
-
} from "./
|
|
18
|
+
} from "./fetch-q4bn6dy8.js";
|
|
19
19
|
import {
|
|
20
20
|
layer2
|
|
21
|
-
} from "./
|
|
21
|
+
} from "./fetch-z3e7v67k.js";
|
|
22
22
|
import {
|
|
23
23
|
node2
|
|
24
|
-
} from "./
|
|
24
|
+
} from "./fetch-w9jcwh65.js";
|
|
25
25
|
import {
|
|
26
26
|
handlers2
|
|
27
|
-
} from "./
|
|
27
|
+
} from "./fetch-95h1mmtp.js";
|
|
28
28
|
import {
|
|
29
29
|
authorizationLayer2
|
|
30
|
-
} from "./
|
|
30
|
+
} from "./fetch-7b9xm1qg.js";
|
|
31
31
|
import {
|
|
32
32
|
schemaErrorLayer2
|
|
33
|
-
} from "./
|
|
33
|
+
} from "./fetch-bd8755ek.js";
|
|
34
34
|
|
|
35
35
|
// src/routes.ts
|
|
36
36
|
import { Database } from "@opencode/core/database/database";
|
|
@@ -152,7 +152,7 @@ function makeRoutes(auth, options, serviceURLs, overrides, instances) {
|
|
|
152
152
|
return serviceLayer.pipe(Layer.flatMap((context) => {
|
|
153
153
|
const services = Layer.succeedContext(context);
|
|
154
154
|
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));
|
|
155
|
-
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(
|
|
155
|
+
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));
|
|
156
156
|
return Layer.merge(api, V1Migration.layer.pipe(Layer.provide(services)));
|
|
157
157
|
}));
|
|
158
158
|
}
|
|
@@ -2,17 +2,17 @@ import {
|
|
|
2
2
|
locationErrors2,
|
|
3
3
|
response2,
|
|
4
4
|
requestRef2
|
|
5
|
-
} from "./
|
|
5
|
+
} from "./fetch-gqq6kfhc.js";
|
|
6
6
|
import {
|
|
7
7
|
Api2
|
|
8
|
-
} from "./
|
|
8
|
+
} from "./fetch-9c4eyh8m.js";
|
|
9
9
|
import {
|
|
10
10
|
CorsConfig2,
|
|
11
11
|
isAllowedRequestOrigin2
|
|
12
|
-
} from "./
|
|
12
|
+
} from "./fetch-q4bn6dy8.js";
|
|
13
13
|
import {
|
|
14
14
|
runPtySocket2
|
|
15
|
-
} from "./
|
|
15
|
+
} from "./fetch-h6rt5k9s.js";
|
|
16
16
|
|
|
17
17
|
// src/handlers/mcp.ts
|
|
18
18
|
import { Location } from "@opencode/core/location";
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isAllowedCorsOrigin2
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./fetch-q4bn6dy8.js";
|
|
4
4
|
import {
|
|
5
5
|
createRoutes2
|
|
6
|
-
} from "./
|
|
6
|
+
} from "./fetch-qb54r15e.js";
|
|
7
7
|
import {
|
|
8
8
|
__export
|
|
9
|
-
} from "./
|
|
9
|
+
} from "./fetch-9rqn6x4v.js";
|
|
10
10
|
|
|
11
11
|
// src/fetch.ts
|
|
12
12
|
var exports_fetch = {};
|
|
13
13
|
__export(exports_fetch, {
|
|
14
14
|
ServerFetch: () => exports_fetch,
|
|
15
|
-
make: () =>
|
|
15
|
+
make: () => make2
|
|
16
16
|
});
|
|
17
17
|
import { Context, Effect, Layer } from "effect";
|
|
18
18
|
import { HttpEffect, HttpMiddleware, HttpRouter, HttpServer } from "effect/http";
|
|
19
19
|
import { SessionRestart } from "@opencode/core/session/execution/restart";
|
|
20
|
-
var
|
|
20
|
+
var make2 = Effect.fn("ServerFetch.make")(function* (options = {}, boot = {}) {
|
|
21
21
|
const context = yield* Layer.build(createRoutes2(options, () => [], boot.overrides ?? []).pipe(Layer.provide(HttpServer.layerServices)));
|
|
22
22
|
yield* Effect.forkDetach(Context.get(context, SessionRestart.Service).resumeSuspendedSessions);
|
|
23
23
|
return Context.get(context, HttpRouter.HttpRouter).asHttpEffect().pipe(HttpMiddleware.cors({ allowedOrigins: (origin) => isAllowedCorsOrigin2(origin, options), maxAge: 86400 }), HttpEffect.toWebHandlerWith(context));
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
export {
|
|
26
|
+
export { make2, exports_fetch };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Api2
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./fetch-9c4eyh8m.js";
|
|
4
4
|
import {
|
|
5
5
|
SESSION_TTL_SECONDS2,
|
|
6
6
|
Config2,
|
|
7
7
|
issueSession2,
|
|
8
8
|
sessionCookieName2
|
|
9
|
-
} from "./
|
|
9
|
+
} from "./fetch-j4at0y5c.js";
|
|
10
10
|
import {
|
|
11
11
|
Service2
|
|
12
|
-
} from "./
|
|
12
|
+
} from "./fetch-z3e7v67k.js";
|
|
13
13
|
import {
|
|
14
|
-
|
|
15
|
-
} from "./
|
|
14
|
+
Service3
|
|
15
|
+
} from "./fetch-w9jcwh65.js";
|
|
16
16
|
|
|
17
17
|
// src/handlers/server.ts
|
|
18
18
|
import { hostname } from "node:os";
|
|
@@ -22,7 +22,7 @@ import { HttpApiBuilder } from "effect/http-api";
|
|
|
22
22
|
import { PersistentPty } from "@opencode/core/persistent-pty";
|
|
23
23
|
import { UnauthorizedError } from "@opencode/protocol/errors";
|
|
24
24
|
var ServerHandler2 = HttpApiBuilder.group(Api2, "server.server", (handlers) => Effect.gen(function* () {
|
|
25
|
-
const pairing = yield*
|
|
25
|
+
const pairing = yield* Service3;
|
|
26
26
|
const auth = yield* Config2;
|
|
27
27
|
return handlers.handle("server.info", () => Effect.gen(function* () {
|
|
28
28
|
const info = yield* Service2;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
__export
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./fetch-9rqn6x4v.js";
|
|
4
4
|
|
|
5
5
|
// src/pairing.ts
|
|
6
6
|
var exports_pairing = {};
|
|
7
7
|
__export(exports_pairing, {
|
|
8
8
|
ServerPairing: () => exports_pairing,
|
|
9
|
-
Service: () =>
|
|
9
|
+
Service: () => Service3,
|
|
10
10
|
node: () => node2
|
|
11
11
|
});
|
|
12
12
|
import { Cache, Context, Duration, Effect, Layer } from "effect";
|
|
@@ -14,12 +14,12 @@ import { makeGlobalNode } from "@opencode/util/effect/app-node";
|
|
|
14
14
|
import { randomBytes } from "node:crypto";
|
|
15
15
|
var TTL = Duration.minutes(5);
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class Service3 extends Context.Service()("@opencode/ServerPairing") {
|
|
18
18
|
}
|
|
19
19
|
var noLookup = () => Effect.die(new Error("ServerPairing cache must be used via set/invalidateWhen, never get"));
|
|
20
|
-
var layer = Layer.effect(
|
|
20
|
+
var layer = Layer.effect(Service3, Effect.gen(function* () {
|
|
21
21
|
const cache = yield* Cache.make({ capacity: 1000, lookup: noLookup, timeToLive: TTL });
|
|
22
|
-
return
|
|
22
|
+
return Service3.of({
|
|
23
23
|
issue: Effect.fn("ServerPairing.issue")(function* () {
|
|
24
24
|
const code = randomBytes(16).toString("base64url");
|
|
25
25
|
yield* Cache.set(cache, code, true);
|
|
@@ -30,6 +30,6 @@ var layer = Layer.effect(Service4, Effect.gen(function* () {
|
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
32
|
}));
|
|
33
|
-
var node2 = makeGlobalNode({ service:
|
|
33
|
+
var node2 = makeGlobalNode({ service: Service3, layer, deps: [] });
|
|
34
34
|
|
|
35
|
-
export {
|
|
35
|
+
export { Service3, node2, exports_pairing };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
__export
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./fetch-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: () =>
|
|
10
|
+
Service: () => Service4,
|
|
11
11
|
SubscriberCapacity: () => SubscriberCapacity2,
|
|
12
12
|
SubscriberOverflowError: () => SubscriberOverflowError2,
|
|
13
13
|
frame: () => frame2,
|
|
14
|
-
layer: () =>
|
|
14
|
+
layer: () => layer4,
|
|
15
15
|
make: () => make4
|
|
16
16
|
});
|
|
17
17
|
import { Bus } from "@opencode/core/bus";
|
|
@@ -30,7 +30,7 @@ class EncodingError2 extends Schema.TaggedError()("EventFeed.EncodingError", {
|
|
|
30
30
|
}) {
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
class
|
|
33
|
+
class Service4 extends Context.Service()("@opencode/server/EventFeed") {
|
|
34
34
|
}
|
|
35
35
|
function frame2(event) {
|
|
36
36
|
return `data: ${JSON.stringify(event)}
|
|
@@ -72,13 +72,13 @@ var make4 = Effect.fn("EventFeed.make")(function* (observe, options) {
|
|
|
72
72
|
});
|
|
73
73
|
const unsubscribe = yield* observe(publish);
|
|
74
74
|
yield* Effect.addFinalizer(() => unsubscribe);
|
|
75
|
-
return
|
|
75
|
+
return Service4.of({
|
|
76
76
|
subscribe: (types) => Effect.acquireRelease(Queue.dropping(capacity).pipe(Effect.tap((queue) => Effect.sync(() => subscribers.set(queue, types?.length ? new Set(types) : undefined)))), (queue) => Effect.sync(() => subscribers.delete(queue)).pipe(Effect.andThen(Queue.shutdown(queue)), Effect.asVoid)).pipe(Effect.map(Stream.fromQueue))
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
|
-
var
|
|
79
|
+
var layer4 = Layer.effect(Service4, Effect.gen(function* () {
|
|
80
80
|
const bus = yield* Bus.Service;
|
|
81
81
|
return yield* make4(bus.listen);
|
|
82
82
|
}));
|
|
83
83
|
|
|
84
|
-
export { SubscriberCapacity2, SubscriberOverflowError2, EncodingError2,
|
|
84
|
+
export { SubscriberCapacity2, SubscriberOverflowError2, EncodingError2, Service4, frame2, make4, layer4, exports_event_feed };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
locationErrors2,
|
|
3
3
|
awaitPlugins2
|
|
4
|
-
} from "./
|
|
4
|
+
} from "./fetch-gqq6kfhc.js";
|
|
5
5
|
import {
|
|
6
6
|
Api2
|
|
7
|
-
} from "./
|
|
7
|
+
} from "./fetch-9c4eyh8m.js";
|
|
8
8
|
|
|
9
9
|
// src/handlers/voice.ts
|
|
10
10
|
import { Location } from "@opencode/core/location";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
requestRef2
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./fetch-gqq6kfhc.js";
|
|
4
4
|
import {
|
|
5
5
|
Api2
|
|
6
|
-
} from "./
|
|
6
|
+
} from "./fetch-9c4eyh8m.js";
|
|
7
7
|
|
|
8
8
|
// src/handlers/debug.ts
|
|
9
9
|
import { LocationServiceMap } from "@opencode/core/location-service-map";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
missingSession2,
|
|
3
3
|
failedMessageDecode2
|
|
4
|
-
} from "./
|
|
4
|
+
} from "./fetch-smaf4a18.js";
|
|
5
5
|
import {
|
|
6
6
|
Api2
|
|
7
|
-
} from "./
|
|
7
|
+
} from "./fetch-9c4eyh8m.js";
|
|
8
8
|
import {
|
|
9
9
|
wantsMediaRefs2
|
|
10
|
-
} from "./
|
|
10
|
+
} from "./fetch-xthc02cw.js";
|
|
11
11
|
|
|
12
12
|
// src/handlers/message.ts
|
|
13
13
|
import { SessionMessage } from "@opencode/core/session/message";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
response2
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./fetch-gqq6kfhc.js";
|
|
4
4
|
import {
|
|
5
5
|
Api2
|
|
6
|
-
} from "./
|
|
6
|
+
} from "./fetch-9c4eyh8m.js";
|
|
7
7
|
|
|
8
8
|
// src/handlers/integration.ts
|
|
9
9
|
import { Integration } from "@opencode/core/integration";
|
|
@@ -17,6 +17,25 @@ import {
|
|
|
17
17
|
InvalidRequestError
|
|
18
18
|
} from "@opencode/protocol/errors";
|
|
19
19
|
import { WellKnown } from "@opencode/core/wellknown";
|
|
20
|
+
import { Config } from "@opencode/core/config";
|
|
21
|
+
import { ManagedPolicy } from "@opencode/core/managed-policy";
|
|
22
|
+
var statements = Effect.fnUntraced(function* () {
|
|
23
|
+
const config = yield* Config.Service;
|
|
24
|
+
return ManagedPolicy.statements(yield* config.entries());
|
|
25
|
+
});
|
|
26
|
+
var isMcp = (integration) => integration?.metadata?.source === "mcp";
|
|
27
|
+
var requireConnectable2 = Effect.fnUntraced(function* (integrationID) {
|
|
28
|
+
const integrations = yield* Integration.Service;
|
|
29
|
+
if (isMcp(yield* integrations.get(integrationID)))
|
|
30
|
+
return;
|
|
31
|
+
const denied = ManagedPolicy.match(yield* statements(), "integration.connect", integrationID);
|
|
32
|
+
if (denied?.effect !== "deny")
|
|
33
|
+
return;
|
|
34
|
+
return yield* new InvalidRequestError({
|
|
35
|
+
message: `${denied.message}: connecting ${integrationID} is not allowed`,
|
|
36
|
+
kind: "integration_policy"
|
|
37
|
+
});
|
|
38
|
+
});
|
|
20
39
|
var authorize = (effect) => effect.pipe(Effect.mapError((error) => new InvalidRequestError({
|
|
21
40
|
message: error.cause instanceof Error && error.cause.message.trim() ? error.cause.message : "Authentication failed",
|
|
22
41
|
kind: "integration_authorization"
|
|
@@ -25,7 +44,8 @@ var IntegrationHandler2 = HttpApiBuilder.group(Api2, "server.integration", (hand
|
|
|
25
44
|
return handlers.handle("integration.list", Effect.fn(function* () {
|
|
26
45
|
yield* Plugin.awaitActivation;
|
|
27
46
|
const service = yield* Integration.Service;
|
|
28
|
-
|
|
47
|
+
const current = yield* statements();
|
|
48
|
+
return yield* response2(service.list().pipe(Effect.map((integrations) => integrations.filter((integration) => isMcp(integration) || ManagedPolicy.decision(current, "integration.connect", integration.id) !== "deny"))));
|
|
29
49
|
})).handle("integration.get", Effect.fn(function* (ctx) {
|
|
30
50
|
const service = yield* Integration.Service;
|
|
31
51
|
const integration = yield* service.get(ctx.params.integrationID);
|
|
@@ -38,10 +58,12 @@ var IntegrationHandler2 = HttpApiBuilder.group(Api2, "server.integration", (hand
|
|
|
38
58
|
})).handle("integration.wellknown.add", Effect.fn(function* (ctx) {
|
|
39
59
|
const wellknown = yield* WellKnown.Service;
|
|
40
60
|
const integration = yield* Integration.Service;
|
|
61
|
+
yield* requireConnectable2(Integration.ID.make(ctx.payload.url.replace(/\/+$/, "")));
|
|
41
62
|
yield* wellknown.add(ctx.payload.url).pipe(Effect.mapError((error) => new InvalidRequestError({ message: error.message, kind: "well_known_discovery" })));
|
|
42
63
|
yield* integration.reload();
|
|
43
64
|
return HttpApiSchema.NoContent.make();
|
|
44
65
|
})).handle("integration.connect.key", Effect.fn(function* (ctx) {
|
|
66
|
+
yield* requireConnectable2(ctx.params.integrationID);
|
|
45
67
|
const service = yield* Integration.Service;
|
|
46
68
|
if (!(yield* service.get(ctx.params.integrationID)))
|
|
47
69
|
return yield* new IntegrationNotFoundError({
|
|
@@ -56,6 +78,7 @@ var IntegrationHandler2 = HttpApiBuilder.group(Api2, "server.integration", (hand
|
|
|
56
78
|
}));
|
|
57
79
|
return HttpApiSchema.NoContent.make();
|
|
58
80
|
})).handle("integration.connect.external", Effect.fn(function* (ctx) {
|
|
81
|
+
yield* requireConnectable2(ctx.params.integrationID);
|
|
59
82
|
const service = yield* Integration.Service;
|
|
60
83
|
if (!(yield* service.get(ctx.params.integrationID)))
|
|
61
84
|
return yield* new IntegrationNotFoundError({
|
|
@@ -70,6 +93,7 @@ var IntegrationHandler2 = HttpApiBuilder.group(Api2, "server.integration", (hand
|
|
|
70
93
|
}));
|
|
71
94
|
return HttpApiSchema.NoContent.make();
|
|
72
95
|
})).handle("integration.oauth.connect", Effect.fn(function* (ctx) {
|
|
96
|
+
yield* requireConnectable2(ctx.params.integrationID);
|
|
73
97
|
const service = yield* Integration.Service;
|
|
74
98
|
return yield* response2(authorize(service.oauth.connect({
|
|
75
99
|
integrationID: ctx.params.integrationID,
|
|
@@ -124,6 +148,7 @@ var IntegrationHandler2 = HttpApiBuilder.group(Api2, "server.integration", (hand
|
|
|
124
148
|
});
|
|
125
149
|
return HttpApiSchema.NoContent.make();
|
|
126
150
|
})).handle("integration.command.connect", Effect.fn(function* (ctx) {
|
|
151
|
+
yield* requireConnectable2(ctx.params.integrationID);
|
|
127
152
|
const service = yield* Integration.Service;
|
|
128
153
|
const integration = yield* service.get(ctx.params.integrationID);
|
|
129
154
|
if (!integration)
|
|
@@ -167,4 +192,4 @@ var IntegrationHandler2 = HttpApiBuilder.group(Api2, "server.integration", (hand
|
|
|
167
192
|
}));
|
|
168
193
|
}));
|
|
169
194
|
|
|
170
|
-
export { IntegrationHandler2 };
|
|
195
|
+
export { requireConnectable2, IntegrationHandler2 };
|
package/dist/cors.js
CHANGED
package/dist/event-feed.js
CHANGED
|
@@ -2,19 +2,19 @@ import {
|
|
|
2
2
|
SubscriberCapacity2,
|
|
3
3
|
SubscriberOverflowError2,
|
|
4
4
|
EncodingError2,
|
|
5
|
-
|
|
5
|
+
Service4,
|
|
6
6
|
frame2,
|
|
7
7
|
make4,
|
|
8
|
-
|
|
8
|
+
layer4,
|
|
9
9
|
exports_event_feed
|
|
10
|
-
} from "./chunks/
|
|
10
|
+
} from "./chunks/fetch-wecgp61r.js";
|
|
11
11
|
export {
|
|
12
12
|
EncodingError2 as EncodingError,
|
|
13
13
|
exports_event_feed as EventFeed,
|
|
14
|
-
|
|
14
|
+
Service4 as Service,
|
|
15
15
|
SubscriberCapacity2 as SubscriberCapacity,
|
|
16
16
|
SubscriberOverflowError2 as SubscriberOverflowError,
|
|
17
17
|
frame2 as frame,
|
|
18
|
-
|
|
18
|
+
layer4 as layer,
|
|
19
19
|
make4 as make
|
|
20
20
|
};
|
package/dist/fetch.js
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
make2,
|
|
3
3
|
exports_fetch
|
|
4
|
-
} from "./chunks/
|
|
5
|
-
import"./chunks/
|
|
6
|
-
import"./chunks/
|
|
7
|
-
import"./chunks/
|
|
8
|
-
import"./chunks/
|
|
9
|
-
import"./chunks/
|
|
10
|
-
import"./chunks/
|
|
11
|
-
import"./chunks/
|
|
12
|
-
import"./chunks/
|
|
13
|
-
import"./chunks/
|
|
14
|
-
import"./chunks/
|
|
15
|
-
import"./chunks/
|
|
16
|
-
import"./chunks/
|
|
17
|
-
import"./chunks/
|
|
18
|
-
import"./chunks/
|
|
19
|
-
import"./chunks/
|
|
20
|
-
import"./chunks/
|
|
21
|
-
import"./chunks/
|
|
22
|
-
import"./chunks/
|
|
23
|
-
import"./chunks/
|
|
24
|
-
import"./chunks/
|
|
25
|
-
import"./chunks/
|
|
26
|
-
import"./chunks/
|
|
27
|
-
import"./chunks/
|
|
28
|
-
import"./chunks/
|
|
29
|
-
import"./chunks/
|
|
30
|
-
import"./chunks/
|
|
31
|
-
import"./chunks/
|
|
32
|
-
import"./chunks/
|
|
33
|
-
import"./chunks/
|
|
34
|
-
import"./chunks/
|
|
35
|
-
import"./chunks/
|
|
36
|
-
import"./chunks/
|
|
37
|
-
import"./chunks/
|
|
38
|
-
import"./chunks/
|
|
39
|
-
import"./chunks/
|
|
40
|
-
import"./chunks/
|
|
41
|
-
import"./chunks/
|
|
42
|
-
import"./chunks/
|
|
43
|
-
import"./chunks/
|
|
44
|
-
import"./chunks/
|
|
45
|
-
import"./chunks/
|
|
46
|
-
import"./chunks/
|
|
47
|
-
import"./chunks/
|
|
48
|
-
import"./chunks/
|
|
49
|
-
import"./chunks/
|
|
50
|
-
import"./chunks/
|
|
51
|
-
import"./chunks/
|
|
52
|
-
import"./chunks/
|
|
53
|
-
import"./chunks/
|
|
54
|
-
import"./chunks/
|
|
4
|
+
} from "./chunks/fetch-w1r7dqbt.js";
|
|
5
|
+
import"./chunks/fetch-qb54r15e.js";
|
|
6
|
+
import"./chunks/fetch-bd8755ek.js";
|
|
7
|
+
import"./chunks/fetch-7b9xm1qg.js";
|
|
8
|
+
import"./chunks/fetch-95h1mmtp.js";
|
|
9
|
+
import"./chunks/fetch-b5vdqx3g.js";
|
|
10
|
+
import"./chunks/fetch-2xcc0x05.js";
|
|
11
|
+
import"./chunks/fetch-yr4wsvrw.js";
|
|
12
|
+
import"./chunks/fetch-e46y0tfd.js";
|
|
13
|
+
import"./chunks/fetch-hax1v4bv.js";
|
|
14
|
+
import"./chunks/fetch-wxj3d9av.js";
|
|
15
|
+
import"./chunks/fetch-c6sjpm0r.js";
|
|
16
|
+
import"./chunks/fetch-0a5jm2na.js";
|
|
17
|
+
import"./chunks/fetch-6vs5sqy6.js";
|
|
18
|
+
import"./chunks/fetch-x8dgc261.js";
|
|
19
|
+
import"./chunks/fetch-dk68ymtv.js";
|
|
20
|
+
import"./chunks/fetch-xe9t9xr4.js";
|
|
21
|
+
import"./chunks/fetch-1je14sn4.js";
|
|
22
|
+
import"./chunks/fetch-z59gyc0x.js";
|
|
23
|
+
import"./chunks/fetch-w587cpb2.js";
|
|
24
|
+
import"./chunks/fetch-j9gxd9me.js";
|
|
25
|
+
import"./chunks/fetch-hnheq3hv.js";
|
|
26
|
+
import"./chunks/fetch-kffvskmv.js";
|
|
27
|
+
import"./chunks/fetch-zgt2tacv.js";
|
|
28
|
+
import"./chunks/fetch-22wspztn.js";
|
|
29
|
+
import"./chunks/fetch-h9rcwvg0.js";
|
|
30
|
+
import"./chunks/fetch-e9906t2e.js";
|
|
31
|
+
import"./chunks/fetch-b2k9041j.js";
|
|
32
|
+
import"./chunks/fetch-gsyfxrkq.js";
|
|
33
|
+
import"./chunks/fetch-059rbh9c.js";
|
|
34
|
+
import"./chunks/fetch-h072q2hm.js";
|
|
35
|
+
import"./chunks/fetch-r6vmgwff.js";
|
|
36
|
+
import"./chunks/fetch-rztv1fyf.js";
|
|
37
|
+
import"./chunks/fetch-n321d8vm.js";
|
|
38
|
+
import"./chunks/fetch-m5rae7m4.js";
|
|
39
|
+
import"./chunks/fetch-ckkpcd9y.js";
|
|
40
|
+
import"./chunks/fetch-qn8kkfq6.js";
|
|
41
|
+
import"./chunks/fetch-h6rt5k9s.js";
|
|
42
|
+
import"./chunks/fetch-zrprg5z5.js";
|
|
43
|
+
import"./chunks/fetch-ppma8fcc.js";
|
|
44
|
+
import"./chunks/fetch-z3e7v67k.js";
|
|
45
|
+
import"./chunks/fetch-xthc02cw.js";
|
|
46
|
+
import"./chunks/fetch-j4at0y5c.js";
|
|
47
|
+
import"./chunks/fetch-9c4eyh8m.js";
|
|
48
|
+
import"./chunks/fetch-yet0vexm.js";
|
|
49
|
+
import"./chunks/fetch-gk0yxcp6.js";
|
|
50
|
+
import"./chunks/fetch-w9jcwh65.js";
|
|
51
|
+
import"./chunks/fetch-gqq6kfhc.js";
|
|
52
|
+
import"./chunks/fetch-smaf4a18.js";
|
|
53
|
+
import"./chunks/fetch-wecgp61r.js";
|
|
54
|
+
import"./chunks/fetch-q4bn6dy8.js";
|
|
55
55
|
export {
|
|
56
56
|
exports_fetch as ServerFetch,
|
|
57
|
-
|
|
57
|
+
make2 as make
|
|
58
58
|
};
|
package/dist/handlers/agent.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentHandler2
|
|
3
|
-
} from "../chunks/
|
|
4
|
-
import"../chunks/
|
|
5
|
-
import"../chunks/
|
|
6
|
-
import"../chunks/
|
|
7
|
-
import"../chunks/
|
|
8
|
-
import"../chunks/
|
|
3
|
+
} from "../chunks/fetch-hnheq3hv.js";
|
|
4
|
+
import"../chunks/fetch-9c4eyh8m.js";
|
|
5
|
+
import"../chunks/fetch-yet0vexm.js";
|
|
6
|
+
import"../chunks/fetch-gk0yxcp6.js";
|
|
7
|
+
import"../chunks/fetch-gqq6kfhc.js";
|
|
8
|
+
import"../chunks/fetch-smaf4a18.js";
|
|
9
9
|
export {
|
|
10
10
|
AgentHandler2 as AgentHandler
|
|
11
11
|
};
|
package/dist/handlers/command.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CommandHandler2
|
|
3
|
-
} from "../chunks/
|
|
4
|
-
import"../chunks/
|
|
5
|
-
import"../chunks/
|
|
6
|
-
import"../chunks/
|
|
7
|
-
import"../chunks/
|
|
8
|
-
import"../chunks/
|
|
3
|
+
} from "../chunks/fetch-z59gyc0x.js";
|
|
4
|
+
import"../chunks/fetch-9c4eyh8m.js";
|
|
5
|
+
import"../chunks/fetch-yet0vexm.js";
|
|
6
|
+
import"../chunks/fetch-gk0yxcp6.js";
|
|
7
|
+
import"../chunks/fetch-gqq6kfhc.js";
|
|
8
|
+
import"../chunks/fetch-smaf4a18.js";
|
|
9
9
|
export {
|
|
10
10
|
CommandHandler2 as CommandHandler
|
|
11
11
|
};
|