From 33cef075d228e80aefb44671ec68e1989c2855a8 Mon Sep 17 00:00:00 2001 From: Dax Date: Thu, 31 Jul 2025 01:00:29 -0400 Subject: ci: new publish method (#1451) --- packages/sdk/stainless/generate.ts | 15 +++ packages/sdk/stainless/stainless-workspace.json | 5 + packages/sdk/stainless/stainless.yml | 151 ++++++++++++++++++++++++ 3 files changed, 171 insertions(+) create mode 100755 packages/sdk/stainless/generate.ts create mode 100644 packages/sdk/stainless/stainless-workspace.json create mode 100644 packages/sdk/stainless/stainless.yml (limited to 'packages/sdk/stainless') diff --git a/packages/sdk/stainless/generate.ts b/packages/sdk/stainless/generate.ts new file mode 100755 index 000000000..0a766d0d7 --- /dev/null +++ b/packages/sdk/stainless/generate.ts @@ -0,0 +1,15 @@ +#!/usr/bin/env bun +import { $ } from "bun" +const dir = new URL(".", import.meta.url).pathname +process.chdir(dir) + +console.log("=== Generating Stainless SDK ===") +console.log(process.cwd()) + +await $`rm -rf go` +await $`bun run ../../opencode/src/index.ts generate > openapi.json` +await $`stl builds create --branch dev --pull --allow-empty --+target go` + +await $`rm -rf ../go` +await $`mv opencode-go/ ../go` +await $`rm -rf ../go/.git` diff --git a/packages/sdk/stainless/stainless-workspace.json b/packages/sdk/stainless/stainless-workspace.json new file mode 100644 index 000000000..b4230b05e --- /dev/null +++ b/packages/sdk/stainless/stainless-workspace.json @@ -0,0 +1,5 @@ +{ + "project": "opencode", + "openapi_spec": "openapi.json", + "stainless_config": "stainless.yml" +} diff --git a/packages/sdk/stainless/stainless.yml b/packages/sdk/stainless/stainless.yml new file mode 100644 index 000000000..3bc7ab0e0 --- /dev/null +++ b/packages/sdk/stainless/stainless.yml @@ -0,0 +1,151 @@ +# yaml-language-server: $schema=https://app.stainless.com/config-internal.schema.json + +organization: + name: opencode + docs: "https://opencode.ai/docs" + contact: "support@sst.dev" + +targets: + typescript: + package_name: "@opencode-ai/sdk" + production_repo: "sst/opencode-sdk-js" + publish: + npm: true + go: + package_name: opencode + production_repo: sst/opencode-sdk-go + python: + project_name: opencode-ai + package_name: opencode_ai + production_repo: sst/opencode-sdk-python + publish: + pypi: true + +environments: + production: http://localhost:54321 + +streaming: + on_event: + - kind: fallthrough + handle: yield + +resources: + $shared: + models: + unknownError: UnknownError + providerAuthError: ProviderAuthError + messageAbortedError: MessageAbortedError + + event: + methods: + list: + endpoint: get /event + paginated: false + streaming: + # This method is always streaming. + param_discriminator: null + + app: + models: + app: App + logLevel: LogLevel + provider: Provider + model: Model + mode: Mode + methods: + get: get /app + init: post /app/init + log: post /log + modes: get /mode + providers: get /config/providers + + find: + models: + match: Match + symbol: Symbol + methods: + text: get /find + files: get /find/file + symbols: get /find/symbol + + file: + models: + file: File + methods: + read: get /file + status: get /file/status + + config: + models: + config: Config + keybindsConfig: KeybindsConfig + mcpLocalConfig: McpLocalConfig + mcpRemoteConfig: McpRemoteConfig + modeConfig: ModeConfig + methods: + get: get /config + + session: + models: + session: Session + message: Message + part: Part + textPart: TextPart + textPartInput: TextPartInput + filePart: FilePart + filePartInput: FilePartInput + filePartSourceText: FilePartSourceText + filePartSource: FilePartSource + fileSource: FileSource + symbolSource: SymbolSource + toolPart: ToolPart + stepStartPart: StepStartPart + stepFinishPart: StepFinishPart + snapshotPart: SnapshotPart + assistantMessage: AssistantMessage + userMessage: UserMessage + toolStatePending: ToolStatePending + toolStateRunning: ToolStateRunning + toolStateCompleted: ToolStateCompleted + toolStateError: ToolStateError + + methods: + list: get /session + create: post /session + delete: delete /session/{id} + init: post /session/{id}/init + abort: post /session/{id}/abort + share: post /session/{id}/share + unshare: delete /session/{id}/share + summarize: post /session/{id}/summarize + messages: get /session/{id}/message + chat: post /session/{id}/message + revert: post /session/{id}/revert + unrevert: post /session/{id}/unrevert + + tui: + methods: + appendPrompt: post /tui/append-prompt + openHelp: post /tui/open-help + +settings: + disable_mock_tests: true + license: MIT + +security: + - {} + +readme: + example_requests: + default: + type: request + endpoint: get /session + params: {} + headline: + type: request + endpoint: get /session + params: {} + streaming: + type: request + endpoint: get /event + params: {} -- cgit v1.2.3