summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/stainless
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sdk/stainless')
-rwxr-xr-xpackages/sdk/stainless/generate.ts15
-rw-r--r--packages/sdk/stainless/stainless-workspace.json5
-rw-r--r--packages/sdk/stainless/stainless.yml151
3 files changed, 171 insertions, 0 deletions
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: "[email protected]"
+
+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: {}