@opencode-ai/client
Advanced tools
| import type { OpenCodeClient, PtyConnectTokenInput } from "../promise"; | ||
| export type PtyClientOptions = { | ||
| readonly url: string; | ||
| readonly openSocket?: (url: URL) => WebSocket; | ||
| }; | ||
| export type PtyConnectInput = { | ||
| readonly ptyID: PtyConnectTokenInput["ptyID"]; | ||
| readonly location?: PtyConnectTokenInput["location"]; | ||
| readonly cursor?: number; | ||
| }; | ||
| export declare function createPtyClient(api: OpenCodeClient, options: PtyClientOptions): { | ||
| connect(input: PtyConnectInput): Promise<WebSocket>; | ||
| }; |
| export function createPtyClient(api, options) { | ||
| return { | ||
| async connect(input) { | ||
| const result = await api.pty.connect.token({ | ||
| ptyID: input.ptyID, | ||
| location: input.location, | ||
| "x-opencode-ticket": "1", | ||
| }); | ||
| const url = new URL(`/api/pty/${encodeURIComponent(input.ptyID)}/connect`, options.url); | ||
| if (input.location?.directory) | ||
| url.searchParams.set("location[directory]", input.location.directory); | ||
| if (input.location?.workspace) | ||
| url.searchParams.set("location[workspace]", input.location.workspace); | ||
| if (input.cursor !== undefined) | ||
| url.searchParams.set("cursor", String(input.cursor)); | ||
| url.searchParams.set("ticket", result.data.ticket); | ||
| url.protocol = url.protocol === "https:" ? "wss:" : "ws:"; | ||
| const socket = options.openSocket?.(url) ?? new WebSocket(url); | ||
| socket.binaryType = "arraybuffer"; | ||
| return socket; | ||
| }, | ||
| }; | ||
| } |
@@ -358,2 +358,7 @@ // Generated by @opencode-ai/httpapi-codegen. Do not edit. | ||
| const Endpoint20_4 = (raw) => (input) => preserveEffect()(raw["pty.remove"]({ params: { ptyID: input["ptyID"] }, query: { location: input["location"] } }).pipe(Effect.mapError(mapClientError))); | ||
| const Endpoint20_5 = (raw) => (input) => preserveEffect()(raw["pty.connectToken"]({ | ||
| params: { ptyID: input["ptyID"] }, | ||
| query: { location: input["location"] }, | ||
| headers: { "x-opencode-ticket": input["x-opencode-ticket"] }, | ||
| }).pipe(Effect.mapError(mapClientError))); | ||
| const adaptGroup20 = (raw) => ({ | ||
@@ -365,2 +370,3 @@ list: Endpoint20_0(raw), | ||
| remove: Endpoint20_4(raw), | ||
| connect: { token: Endpoint20_5(raw) }, | ||
| }); | ||
@@ -367,0 +373,0 @@ const Endpoint21_0 = (raw) => (input) => preserveEffect()(raw["shell.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError))); |
@@ -1,2 +0,2 @@ | ||
| import type { ServerGetOutput, LocationGetInput, LocationGetOutput, AgentListInput, AgentListOutput, AgentGetInput, AgentGetOutput, PluginListInput, PluginListOutput, SessionListInput, SessionCreateInput, SessionImportInput, SessionExportInput, SessionGetInput, SessionRemoveInput, SessionForkInput, SessionSwitchAgentInput, SessionSwitchModelInput, SessionRenameInput, SessionMoveInput, SessionPromptInput, SessionCommandInput, SessionSkillInput, SessionSyntheticInput, SessionShellInput, SessionCompactInput, SessionWaitInput, SessionRevertStageInput, SessionRevertClearInput, SessionRevertCommitInput, SessionContextInput, SessionInboxListInput, SessionInboxCancelInput, SessionInboxSteerInput, SessionInboxQueueInput, SessionInstructionsEntryListInput, SessionInstructionsEntryPutInput, SessionInstructionsEntryRemoveInput, SessionGenerateInput, SessionLogInput, SessionLogOutput, SessionInterruptInput, SessionBackgroundInput, SessionMessageInput, SessionEnvironmentInput, MessageListInput, ModelListInput, ModelListOutput, ModelDefaultInput, ModelDefaultOutput, GenerateTextInput, ProviderListInput, ProviderListOutput, ProviderGetInput, ProviderGetOutput, IntegrationListInput, IntegrationListOutput, IntegrationGetInput, IntegrationGetOutput, IntegrationWellknownAddInput, IntegrationConnectKeyInput, IntegrationOauthConnectInput, IntegrationOauthConnectOutput, IntegrationOauthStatusInput, IntegrationOauthStatusOutput, IntegrationOauthCompleteInput, IntegrationOauthCancelInput, IntegrationCommandConnectInput, IntegrationCommandConnectOutput, IntegrationCommandStatusInput, IntegrationCommandStatusOutput, IntegrationCommandCancelInput, McpListInput, McpListOutput, McpAddInput, McpRemoveInput, McpConnectInput, McpDisconnectInput, McpResourceCatalogInput, McpResourceCatalogOutput, CredentialUpdateInput, CredentialRemoveInput, ProjectListOutput, ProjectCurrentInput, FormRequestListInput, FormRequestListOutput, FormListInput, FormCreateInput, FormGetInput, FormStateInput, FormReplyInput, FormCancelInput, PermissionRequestListInput, PermissionRequestListOutput, PermissionSavedListInput, PermissionSavedRemoveInput, PermissionCreateInput, PermissionListInput, PermissionGetInput, PermissionReplyInput, FileReadInput, FileReadOutput, FileListInput, FileListOutput, FileFindInput, FileFindOutput, CommandListInput, CommandListOutput, SkillListInput, SkillListOutput, EventSubscribeOutput, PtyListInput, PtyListOutput, PtyCreateInput, PtyCreateOutput, PtyGetInput, PtyGetOutput, PtyUpdateInput, PtyUpdateOutput, PtyRemoveInput, ShellListInput, ShellListOutput, ShellCreateInput, ShellCreateOutput, ShellGetInput, ShellGetOutput, ShellTimeoutInput, ShellTimeoutOutput, ShellOutputInput, ShellOutputOutput, ShellRemoveInput, ReferenceListInput, ReferenceListOutput, WorktreeListInput, WorktreeCreateInput, WorktreeRemoveInput, WorktreeRefreshInput, VcsGetInput, VcsGetOutput, VcsStatusInput, VcsStatusOutput, VcsDiffInput, VcsDiffOutput, DebugLocationListOutput, DebugLocationEvictInput, MigrationV1StatusOutput, WebsearchProvidersInput, WebsearchProvidersOutput, WebsearchQueryInput, WebsearchQueryOutput, ConfigGetInput, ConfigGetOutput } from "./types.js"; | ||
| import type { ServerGetOutput, LocationGetInput, LocationGetOutput, AgentListInput, AgentListOutput, AgentGetInput, AgentGetOutput, PluginListInput, PluginListOutput, SessionListInput, SessionCreateInput, SessionImportInput, SessionExportInput, SessionGetInput, SessionRemoveInput, SessionForkInput, SessionSwitchAgentInput, SessionSwitchModelInput, SessionRenameInput, SessionMoveInput, SessionPromptInput, SessionCommandInput, SessionSkillInput, SessionSyntheticInput, SessionShellInput, SessionCompactInput, SessionWaitInput, SessionRevertStageInput, SessionRevertClearInput, SessionRevertCommitInput, SessionContextInput, SessionInboxListInput, SessionInboxCancelInput, SessionInboxSteerInput, SessionInboxQueueInput, SessionInstructionsEntryListInput, SessionInstructionsEntryPutInput, SessionInstructionsEntryRemoveInput, SessionGenerateInput, SessionLogInput, SessionLogOutput, SessionInterruptInput, SessionBackgroundInput, SessionMessageInput, SessionEnvironmentInput, MessageListInput, ModelListInput, ModelListOutput, ModelDefaultInput, ModelDefaultOutput, GenerateTextInput, ProviderListInput, ProviderListOutput, ProviderGetInput, ProviderGetOutput, IntegrationListInput, IntegrationListOutput, IntegrationGetInput, IntegrationGetOutput, IntegrationWellknownAddInput, IntegrationConnectKeyInput, IntegrationOauthConnectInput, IntegrationOauthConnectOutput, IntegrationOauthStatusInput, IntegrationOauthStatusOutput, IntegrationOauthCompleteInput, IntegrationOauthCancelInput, IntegrationCommandConnectInput, IntegrationCommandConnectOutput, IntegrationCommandStatusInput, IntegrationCommandStatusOutput, IntegrationCommandCancelInput, McpListInput, McpListOutput, McpAddInput, McpRemoveInput, McpConnectInput, McpDisconnectInput, McpResourceCatalogInput, McpResourceCatalogOutput, CredentialUpdateInput, CredentialRemoveInput, ProjectListOutput, ProjectCurrentInput, FormRequestListInput, FormRequestListOutput, FormListInput, FormCreateInput, FormGetInput, FormStateInput, FormReplyInput, FormCancelInput, PermissionRequestListInput, PermissionRequestListOutput, PermissionSavedListInput, PermissionSavedRemoveInput, PermissionCreateInput, PermissionListInput, PermissionGetInput, PermissionReplyInput, FileReadInput, FileReadOutput, FileListInput, FileListOutput, FileFindInput, FileFindOutput, CommandListInput, CommandListOutput, SkillListInput, SkillListOutput, EventSubscribeOutput, PtyListInput, PtyListOutput, PtyCreateInput, PtyCreateOutput, PtyGetInput, PtyGetOutput, PtyUpdateInput, PtyUpdateOutput, PtyRemoveInput, PtyConnectTokenInput, PtyConnectTokenOutput, ShellListInput, ShellListOutput, ShellCreateInput, ShellCreateOutput, ShellGetInput, ShellGetOutput, ShellTimeoutInput, ShellTimeoutOutput, ShellOutputInput, ShellOutputOutput, ShellRemoveInput, ReferenceListInput, ReferenceListOutput, WorktreeListInput, WorktreeCreateInput, WorktreeRemoveInput, WorktreeRefreshInput, VcsGetInput, VcsGetOutput, VcsStatusInput, VcsStatusOutput, VcsDiffInput, VcsDiffOutput, DebugLocationListOutput, DebugLocationEvictInput, MigrationV1StatusOutput, WebsearchProvidersInput, WebsearchProvidersOutput, WebsearchQueryInput, WebsearchQueryOutput, ConfigGetInput, ConfigGetOutput } from "./types.js"; | ||
| export interface ClientOptions { | ||
@@ -187,2 +187,5 @@ readonly baseUrl: string; | ||
| remove: (input: PtyRemoveInput, requestOptions?: RequestOptions) => Promise<void>; | ||
| connect: { | ||
| token: (input: PtyConnectTokenInput, requestOptions?: RequestOptions) => Promise<PtyConnectTokenOutput>; | ||
| }; | ||
| }; | ||
@@ -189,0 +192,0 @@ shell: { |
@@ -965,2 +965,13 @@ import { ClientError } from "./client-error.js"; | ||
| }, requestOptions), | ||
| connect: { | ||
| token: (input, requestOptions) => request({ | ||
| method: "POST", | ||
| path: `/api/pty/${encodeURIComponent(input.ptyID)}/connect-token`, | ||
| query: { location: input["location"] }, | ||
| headers: { "x-opencode-ticket": input["x-opencode-ticket"] }, | ||
| successStatus: 200, | ||
| declaredStatuses: [403, 404, 401, 400], | ||
| empty: false, | ||
| }, requestOptions), | ||
| }, | ||
| }, | ||
@@ -967,0 +978,0 @@ shell: { |
@@ -25,3 +25,4 @@ export const isUnauthorizedError = (value) => typeof value === "object" && value !== null && "_tag" in value && value["_tag"] === "UnauthorizedError"; | ||
| export const isPtyNotFoundError = (value) => typeof value === "object" && value !== null && "_tag" in value && value["_tag"] === "PtyNotFoundError"; | ||
| export const isForbiddenError = (value) => typeof value === "object" && value !== null && "_tag" in value && value["_tag"] === "ForbiddenError"; | ||
| export const isShellNotFoundError = (value) => typeof value === "object" && value !== null && "_tag" in value && value["_tag"] === "ShellNotFoundError"; | ||
| export const isWorktreeError = (value) => typeof value === "object" && value !== null && "name" in value && value["name"] === "WorktreeError"; |
| export * from "./data"; | ||
| export * from "./connection"; | ||
| export * from "./pty"; |
| export * from "./data"; | ||
| export * from "./connection"; | ||
| export * from "./pty"; |
+4
-4
| { | ||
| "$schema": "https://json.schemastore.org/package.json", | ||
| "name": "@opencode-ai/client", | ||
| "version": "0.0.0-dev-17753", | ||
| "version": "0.0.0-dev-17754", | ||
| "type": "module", | ||
@@ -60,4 +60,4 @@ "license": "MIT", | ||
| "dependencies": { | ||
| "@opencode-ai/schema": "0.0.0-dev-17753", | ||
| "@opencode-ai/protocol": "0.0.0-dev-17753" | ||
| "@opencode-ai/schema": "0.0.0-dev-17754", | ||
| "@opencode-ai/protocol": "0.0.0-dev-17754" | ||
| }, | ||
@@ -78,3 +78,3 @@ "peerDependencies": { | ||
| "@effect/platform-node": "4.0.0-rc.110", | ||
| "@opencode-ai/httpapi-codegen": "0.0.0-dev-17753", | ||
| "@opencode-ai/httpapi-codegen": "0.0.0-dev-17754", | ||
| "@tsconfig/bun": "1.0.9", | ||
@@ -81,0 +81,0 @@ "@types/bun": "1.3.13", |
Sorry, the diff of this file is too big to display
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.
702161
0.7%48
4.35%17068
0.68%+ Added
+ Added
- Removed
- Removed