@opencode/protocol 2.1.2 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api.d.ts CHANGED
@@ -27,20 +27,21 @@ import { Authorization } from "./middleware/authorization.js";
27
27
  import { makeLocationGroup } from "./groups/location.js";
28
28
  import { IntegrationGroup } from "./groups/integration.js";
29
29
  import { WebSearchGroup } from "./groups/websearch.js";
30
- import { McpGroup } from "./groups/mcp.js";
30
+ import { makeMcpGroup } from "./groups/mcp.js";
31
31
  import { CredentialGroup } from "./groups/credential.js";
32
32
  import { ProjectGroup } from "./groups/project.js";
33
33
  import { WorktreeGroup } from "./groups/worktree.js";
34
34
  import { VcsGroup } from "./groups/vcs.js";
35
35
  import { MigrationGroup } from "./groups/migration.js";
36
36
  import { ConfigGroup } from "./groups/config.js";
37
- type LocationGroups<LocationId extends HttpApiMiddleware.AnyId> = HttpApiGroup.AddMiddleware<typeof AgentGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof PluginGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ModelGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProviderGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof IntegrationGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof WebSearchGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof McpGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProjectGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof FileSystemGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof CommandGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof SkillGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof RpcGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ShellGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ReferenceGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof VcsGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ConfigGroup, LocationId>;
37
+ type LocationGroups<LocationId extends HttpApiMiddleware.AnyId> = HttpApiGroup.AddMiddleware<typeof AgentGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof PluginGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ModelGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProviderGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof IntegrationGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof WebSearchGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProjectGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof FileSystemGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof CommandGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof SkillGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof RpcGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ShellGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ReferenceGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof VcsGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ConfigGroup, LocationId>;
38
38
  type PtyGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService> = ReturnType<typeof makePtyGroup<LocationId, LocationService>>;
39
+ type McpGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService> = ReturnType<typeof makeMcpGroup<LocationId, LocationService>>;
39
40
  type SessionGroups<SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService> = ReturnType<typeof makeSessionGroup<SessionLocationId, SessionLocationService, FormLocationId, FormLocationService>> | typeof MessageGroup;
40
41
  type FormGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService> = ReturnType<typeof makeFormGroup<LocationId, LocationService>>;
41
42
  type LocationGroup<LocationId extends HttpApiMiddleware.AnyId, LocationService> = ReturnType<typeof makeLocationGroup<LocationId, LocationService>>;
42
43
  type MixedMiddlewareGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService> = ReturnType<typeof makePermissionGroup<LocationId, LocationService, SessionLocationId, SessionLocationService>>;
43
- type ApiGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService, Event extends HttpApiGroup.Constraint> = typeof ServerGroup | typeof DebugGroup | typeof MigrationGroup | typeof WorktreeGroup | typeof GenerateGroup | typeof VoiceGroup | typeof PersistentPtyGroup | typeof CredentialGroup | LocationGroups<LocationId> | LocationGroup<LocationId, LocationService> | PtyGroups<LocationId, LocationService> | FormGroups<LocationId, LocationService> | SessionGroups<SessionLocationId, SessionLocationService, FormLocationId, FormLocationService> | MixedMiddlewareGroups<LocationId, LocationService, SessionLocationId, SessionLocationService> | Event;
44
+ type ApiGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService, Event extends HttpApiGroup.Constraint> = typeof ServerGroup | typeof DebugGroup | typeof MigrationGroup | typeof WorktreeGroup | typeof GenerateGroup | typeof VoiceGroup | typeof PersistentPtyGroup | typeof CredentialGroup | LocationGroups<LocationId> | LocationGroup<LocationId, LocationService> | PtyGroups<LocationId, LocationService> | McpGroups<LocationId, LocationService> | FormGroups<LocationId, LocationService> | SessionGroups<SessionLocationId, SessionLocationService, FormLocationId, FormLocationService> | MixedMiddlewareGroups<LocationId, LocationService, SessionLocationId, SessionLocationService> | Event;
44
45
  type EventGroupFor<Definitions extends ReadonlyArray<Definition>> = ReturnType<typeof makeEventGroup<Definitions>>;
45
46
  export type Api<LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService, Event extends HttpApiGroup.Constraint> = HttpApi.HttpApi<"server", HttpApiGroup.AddMiddleware<HttpApiGroup.AddMiddleware<ApiGroups<LocationId, LocationService, FormLocationId, FormLocationService, SessionLocationId, SessionLocationService, Event>, Authorization>, SchemaErrorMiddleware>>;
46
47
  export declare const makeApi: <const Definitions extends ReadonlyArray<Definition>, LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService>(options: {
package/dist/api.js CHANGED
@@ -26,7 +26,7 @@ import { Authorization } from "./middleware/authorization.js";
26
26
  import { makeLocationGroup } from "./groups/location.js";
27
27
  import { IntegrationGroup } from "./groups/integration.js";
28
28
  import { WebSearchGroup } from "./groups/websearch.js";
29
- import { McpGroup } from "./groups/mcp.js";
29
+ import { makeMcpGroup } from "./groups/mcp.js";
30
30
  import { CredentialGroup } from "./groups/credential.js";
31
31
  import { ProjectGroup } from "./groups/project.js";
32
32
  import { WorktreeGroup } from "./groups/worktree.js";
@@ -46,7 +46,7 @@ const makeApiFromGroup = (eventGroup, locationMiddleware, formLocationMiddleware
46
46
  .add(VoiceGroup)
47
47
  .add(ProviderGroup.middleware(locationMiddleware))
48
48
  .add(IntegrationGroup.middleware(locationMiddleware))
49
- .add(McpGroup.middleware(locationMiddleware))
49
+ .add(makeMcpGroup(locationMiddleware))
50
50
  .add(CredentialGroup)
51
51
  .add(ProjectGroup.middleware(locationMiddleware))
52
52
  .add(makeFormGroup(locationMiddleware))
package/dist/client.js CHANGED
@@ -45,5 +45,11 @@ export const groupNames = {
45
45
  "server.vcs": "vcs",
46
46
  "server.config": "config",
47
47
  };
48
- export const promiseOmitEndpoints = new Set(["pty.connect", "persistentPty.connect"]);
49
- export const effectOmitEndpoints = new Set(["fs.read", "fs.write", "pty.connect", "persistentPty.connect"]);
48
+ export const promiseOmitEndpoints = new Set(["pty.connect", "persistentPty.connect", "mcp.client"]);
49
+ export const effectOmitEndpoints = new Set([
50
+ "fs.read",
51
+ "fs.write",
52
+ "pty.connect",
53
+ "persistentPty.connect",
54
+ "mcp.client",
55
+ ]);
@@ -1,6 +1,19 @@
1
1
  import { Schema } from "effect";
2
2
  import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
3
- export declare const DebugGroup: HttpApiGroup.HttpApiGroup<"server.debug", HttpApiEndpoint.HttpApiEndpoint<"debug.location", "GET", "/api/debug/location", never, never, never, never, Schema.toCodecJson<Schema.$Array<Schema.Struct<{
3
+ import { InvalidRequestError, UnknownError } from "../errors.js";
4
+ export declare const DebugGroup: HttpApiGroup.HttpApiGroup<"server.debug", HttpApiEndpoint.HttpApiEndpoint<"debug.heapDump", "POST", "/api/debug/heap-dump", never, Schema.toCodecStringTree<Schema.Struct<{
5
+ readonly directory: Schema.optional<Schema.String>;
6
+ }>>, never, never, Schema.toCodecJson<Schema.Struct<{
7
+ readonly path: Schema.String;
8
+ readonly pid: Schema.Int;
9
+ readonly memory: Schema.Struct<{
10
+ readonly rss: Schema.Number;
11
+ readonly heapTotal: Schema.Number;
12
+ readonly heapUsed: Schema.Number;
13
+ readonly external: Schema.Number;
14
+ readonly arrayBuffers: Schema.Number;
15
+ }>;
16
+ }>>, Schema.toCodecJson<typeof InvalidRequestError | typeof UnknownError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"debug.location", "GET", "/api/debug/location", never, never, never, never, Schema.toCodecJson<Schema.$Array<Schema.Struct<{
4
17
  readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
5
18
  }>>>, never, never, never> | HttpApiEndpoint.HttpApiEndpoint<"debug.location.evict", "DELETE", "/api/debug/location", never, Schema.toCodecStringTree<Schema.Struct<{
6
19
  readonly location: Schema.optional<Schema.Struct<{
@@ -1,8 +1,34 @@
1
1
  import { Location } from "@opencode/schema/location";
2
2
  import { Schema } from "effect";
3
3
  import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
4
+ import { InvalidRequestError, UnknownError } from "../errors.js";
4
5
  import { LocationQuery, locationQueryOpenApi } from "./location.js";
5
6
  export const DebugGroup = HttpApiGroup.make("server.debug")
7
+ .add(HttpApiEndpoint.post("debug.heapDump", "/api/debug/heap-dump", {
8
+ query: Schema.Struct({
9
+ directory: Schema.String.pipe(Schema.optional, Schema.annotate({
10
+ description: "Absolute server-local directory to write the snapshot into, created when missing. Defaults to the server's log directory.",
11
+ })),
12
+ }),
13
+ success: Schema.Struct({
14
+ path: Schema.String,
15
+ pid: Schema.Int,
16
+ memory: Schema.Struct({
17
+ rss: Schema.Number,
18
+ heapTotal: Schema.Number,
19
+ heapUsed: Schema.Number,
20
+ external: Schema.Number,
21
+ arrayBuffers: Schema.Number,
22
+ }).annotate({
23
+ description: "The server process's memory in bytes, read just before the snapshot (Node's process.memoryUsage()). rss covers native memory the snapshot cannot show.",
24
+ }),
25
+ }),
26
+ error: [InvalidRequestError, UnknownError],
27
+ }).annotateMerge(OpenApi.annotations({
28
+ identifier: "debug.heapDump",
29
+ summary: "Write a heap snapshot",
30
+ description: "Write a JavaScript heap snapshot of the server process into its log directory, or the requested directory, and return the server-local path once the file is complete. Pauses the server while the heap serializes and can temporarily increase its memory use. The snapshot can contain credentials, prompts, and file contents.",
31
+ })))
6
32
  .add(HttpApiEndpoint.get("debug.location", "/api/debug/location", {
7
33
  success: Schema.Array(Location.PublicRef),
8
34
  }).annotateMerge(OpenApi.annotations({