@opencode-ai/protocol
Advanced tools
| import { Schema } from "effect"; | ||
| import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; | ||
| export declare const V1MigrationStatus: Schema.Union<readonly [Schema.Struct<{ | ||
| readonly status: Schema.Literals<readonly ["required", "completed"]>; | ||
| }>, Schema.Struct<{ | ||
| readonly status: Schema.Literal<"running">; | ||
| readonly progress: Schema.Struct<{ | ||
| readonly label: Schema.String; | ||
| readonly numerator: Schema.optional<Schema.Int>; | ||
| readonly denominator: Schema.optional<Schema.Int>; | ||
| }>; | ||
| }>, Schema.Struct<{ | ||
| readonly status: Schema.Literal<"error">; | ||
| readonly error: Schema.String; | ||
| }>]>; | ||
| export declare const MigrationGroup: HttpApiGroup.HttpApiGroup<"server.migration", HttpApiEndpoint.HttpApiEndpoint<"migration.v1.status", "GET", "/api/experimental/migration/v1", never, never, never, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{ | ||
| readonly status: Schema.Literals<readonly ["required", "completed"]>; | ||
| }>, Schema.Struct<{ | ||
| readonly status: Schema.Literal<"running">; | ||
| readonly progress: Schema.Struct<{ | ||
| readonly label: Schema.String; | ||
| readonly numerator: Schema.optional<Schema.Int>; | ||
| readonly denominator: Schema.optional<Schema.Int>; | ||
| }>; | ||
| }>, Schema.Struct<{ | ||
| readonly status: Schema.Literal<"error">; | ||
| readonly error: Schema.String; | ||
| }>]>>, never, never, never>, false>; |
| import { Schema } from "effect"; | ||
| import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; | ||
| const V1MigrationProgress = Schema.Struct({ | ||
| label: Schema.String, | ||
| numerator: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))), | ||
| denominator: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))), | ||
| }); | ||
| export const V1MigrationStatus = Schema.Union([ | ||
| Schema.Struct({ status: Schema.Literals(["required", "completed"]) }), | ||
| Schema.Struct({ status: Schema.Literal("running"), progress: V1MigrationProgress }), | ||
| Schema.Struct({ status: Schema.Literal("error"), error: Schema.String }), | ||
| ]); | ||
| export const MigrationGroup = HttpApiGroup.make("server.migration") | ||
| .add(HttpApiEndpoint.get("migration.v1.status", "/api/experimental/migration/v1", { | ||
| success: V1MigrationStatus, | ||
| }).annotateMerge(OpenApi.annotations({ | ||
| identifier: "v2.experimental.migration.v1.status", | ||
| summary: "Get V1 migration status", | ||
| description: "Return the progress of the V1 to V2 session history migration.", | ||
| }))) | ||
| .annotateMerge(OpenApi.annotations({ title: "migration" })); |
+3
-2
@@ -34,7 +34,8 @@ import { Context } from "effect"; | ||
| import { VcsGroup } from "./groups/vcs.js"; | ||
| import { MigrationGroup } from "./groups/migration.js"; | ||
| type LocationGroups<LocationId extends HttpApiMiddleware.AnyId> = HttpApiGroup.AddMiddleware<typeof LocationGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof AgentGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof PluginGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ModelGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof GenerateGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProviderGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof IntegrationGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof WebSearchGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof McpGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof CredentialGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProjectGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof FileSystemGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof CommandGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof SkillGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof PtyGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ShellGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ReferenceGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof ProjectCopyGroup, LocationId> | HttpApiGroup.AddMiddleware<typeof VcsGroup, LocationId>; | ||
| type SessionGroups<SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService> = ReturnType<typeof makeSessionGroup<SessionLocationId, SessionLocationService>> | HttpApiGroup.AddMiddleware<typeof MessageGroup, SessionLocationId>; | ||
| type SessionGroups<SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService> = ReturnType<typeof makeSessionGroup<SessionLocationId, SessionLocationService>> | typeof MessageGroup; | ||
| type FormGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService> = ReturnType<typeof makeFormGroup<LocationId, LocationService, FormLocationId, FormLocationService>>; | ||
| type MixedMiddlewareGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService> = ReturnType<typeof makePermissionGroup<LocationId, LocationService, SessionLocationId, SessionLocationService>> | ReturnType<typeof makeQuestionGroup<LocationId, LocationService, SessionLocationId, SessionLocationService>>; | ||
| type ApiGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService, Event extends HttpApiGroup.Constraint> = typeof HealthGroup | typeof ServerGroup | typeof DebugGroup | LocationGroups<LocationId> | FormGroups<LocationId, LocationService, FormLocationId, FormLocationService> | SessionGroups<SessionLocationId, SessionLocationService> | MixedMiddlewareGroups<LocationId, LocationService, SessionLocationId, SessionLocationService> | Event; | ||
| type ApiGroups<LocationId extends HttpApiMiddleware.AnyId, LocationService, FormLocationId extends HttpApiMiddleware.AnyId, FormLocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService, Event extends HttpApiGroup.Constraint> = typeof HealthGroup | typeof ServerGroup | typeof DebugGroup | typeof MigrationGroup | LocationGroups<LocationId> | FormGroups<LocationId, LocationService, FormLocationId, FormLocationService> | SessionGroups<SessionLocationId, SessionLocationService> | MixedMiddlewareGroups<LocationId, LocationService, SessionLocationId, SessionLocationService> | Event; | ||
| type EventGroupFor<Definitions extends ReadonlyArray<Definition>> = ReturnType<typeof makeEventGroup<Definitions>>; | ||
@@ -41,0 +42,0 @@ 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>>; |
+3
-1
@@ -33,2 +33,3 @@ import { Context } from "effect"; | ||
| import { VcsGroup } from "./groups/vcs.js"; | ||
| import { MigrationGroup } from "./groups/migration.js"; | ||
| // Protocol owns middleware placement, while Server injects concrete keys so Core service identities stay downstream. | ||
@@ -42,3 +43,3 @@ const makeApiFromGroup = (eventGroup, locationMiddleware, formLocationMiddleware, sessionLocationMiddleware) => HttpApi.make("server") | ||
| .add(makeSessionGroup(sessionLocationMiddleware)) | ||
| .add(MessageGroup.middleware(sessionLocationMiddleware)) | ||
| .add(MessageGroup) | ||
| .add(ModelGroup.middleware(locationMiddleware)) | ||
@@ -64,2 +65,3 @@ .add(GenerateGroup.middleware(locationMiddleware)) | ||
| .add(DebugGroup) | ||
| .add(MigrationGroup) | ||
| .add(WebSearchGroup.middleware(locationMiddleware)) | ||
@@ -66,0 +68,0 @@ .annotateMerge(OpenApi.annotations({ |
+1
-0
@@ -32,2 +32,3 @@ import { InvalidRequestError, SessionNotFoundError } from "./errors.js"; | ||
| readonly "server.debug": "debug"; | ||
| readonly "server.migration": "migration"; | ||
| readonly "server.location": "location"; | ||
@@ -34,0 +35,0 @@ readonly "server.agent": "agent"; |
+1
-0
@@ -19,2 +19,3 @@ import { InvalidRequestError, SessionNotFoundError } from "./errors.js"; | ||
| "server.debug": "debug", | ||
| "server.migration": "migration", | ||
| "server.location": "location", | ||
@@ -21,0 +22,0 @@ "server.agent": "agent", |
@@ -133,3 +133,2 @@ import { SessionMessage } from "@opencode-ai/schema/session-message"; | ||
| }) | ||
| .middleware(sessionLocationMiddleware) | ||
| .annotateMerge(OpenApi.annotations({ | ||
@@ -205,3 +204,2 @@ identifier: "v2.session.get", | ||
| }) | ||
| .middleware(sessionLocationMiddleware) | ||
| .annotateMerge(OpenApi.annotations({ | ||
@@ -356,3 +354,2 @@ identifier: "v2.session.move", | ||
| }) | ||
| .middleware(sessionLocationMiddleware) | ||
| .annotateMerge(OpenApi.annotations({ | ||
@@ -368,3 +365,2 @@ identifier: "v2.session.context", | ||
| }) | ||
| .middleware(sessionLocationMiddleware) | ||
| .annotateMerge(OpenApi.annotations({ | ||
@@ -434,3 +430,2 @@ identifier: "v2.session.pending.list", | ||
| }) | ||
| .middleware(sessionLocationMiddleware) | ||
| .annotateMerge(OpenApi.annotations({ | ||
@@ -468,3 +463,2 @@ identifier: "v2.session.log", | ||
| }) | ||
| .middleware(sessionLocationMiddleware) | ||
| .annotateMerge(OpenApi.annotations({ | ||
@@ -471,0 +465,0 @@ identifier: "v2.session.message", |
+2
-2
| { | ||
| "$schema": "https://json.schemastore.org/package.json", | ||
| "name": "@opencode-ai/protocol", | ||
| "version": "0.0.0-next-16886", | ||
| "version": "0.0.0-next-16892", | ||
| "type": "module", | ||
@@ -31,3 +31,3 @@ "license": "MIT", | ||
| "dependencies": { | ||
| "@opencode-ai/schema": "0.0.0-next-16886", | ||
| "@opencode-ai/schema": "0.0.0-next-16892", | ||
| "effect": "4.0.0-beta.101" | ||
@@ -34,0 +34,0 @@ }, |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
69
2.99%1548251
-16.96%25186
-16.56%+ Added
- Removed