Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0-alpha.1"
".": "0.1.0-alpha.2"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 4
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-07d481d1498bf9677437b555e9ec2d843d50107faa7501e4c430a32b1f3c3343.yml
openapi_spec_hash: 296f78d82afbac95fad12c5eabd71f18
config_hash: 2c8351ba6611ce4a352e248405783846
configured_endpoints: 5
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-1fe396b957ced73281fc0a61a69b630836aa5c89a8dccce2c5a1716bc9775e80.yml
openapi_spec_hash: 9a0d67fb0781be034b77839584109638
config_hash: df889df131f7438197abd59faace3c77
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 0.1.0-alpha.2 (2025-05-19)

Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/onkernel/kernel-go-sdk/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)

### Features

* **api:** update via SDK Studio ([72da2c4](https://github.com/onkernel/kernel-go-sdk/commit/72da2c4b53d8f47d6cc0dab3cfbe8707edb989d2))
* **api:** update via SDK Studio ([58da3af](https://github.com/onkernel/kernel-go-sdk/commit/58da3af97eb8b295a54e22e53d8035f00fe09215))
* **api:** update via SDK Studio ([ebab506](https://github.com/onkernel/kernel-go-sdk/commit/ebab506e3b5f8dbe8d30a47b3734c64024341d87))

## 0.1.0-alpha.1 (2025-05-14)

Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/onkernel/kernel-go-sdk/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)
Expand Down
61 changes: 28 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Or to pin the version:
<!-- x-release-please-start-version -->

```sh
go get -u 'github.com/onkernel/[email protected].1'
go get -u 'github.com/onkernel/[email protected].2'
```

<!-- x-release-please-end -->
Expand Down Expand Up @@ -55,15 +55,18 @@ func main() {
option.WithAPIKey("My API Key"), // defaults to os.LookupEnv("KERNEL_API_KEY")
option.WithEnvironmentDevelopment(), // defaults to option.WithEnvironmentProduction()
)
response, err := client.Apps.Deploy(context.TODO(), kernel.AppDeployParams{
EntrypointRelPath: "app.py",
deployment, err := client.Apps.Deployments.New(context.TODO(), kernel.AppDeploymentNewParams{
EntrypointRelPath: "main.ts",
File: io.Reader(bytes.NewBuffer([]byte("REPLACE_ME"))),
Version: kernel.String("REPLACE_ME"),
EnvVars: map[string]string{
"OPENAI_API_KEY": "x",
},
Version: kernel.String("1.0.0"),
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Apps)
fmt.Printf("%+v\n", deployment.Apps)
}

```
Expand Down Expand Up @@ -269,7 +272,7 @@ client := kernel.NewClient(
option.WithHeader("X-Some-Header", "custom_header_info"),
)

client.Apps.Deploy(context.TODO(), ...,
client.Browsers.New(context.TODO(), ...,
// Override the header
option.WithHeader("X-Some-Header", "some_other_custom_header_info"),
// Add an undocumented field to the request body, using sjson syntax
Expand Down Expand Up @@ -298,18 +301,16 @@ When the API returns a non-success status code, we return an error with type
To handle errors, we recommend that you use the `errors.As` pattern:

```go
_, err := client.Apps.Deploy(context.TODO(), kernel.AppDeployParams{
EntrypointRelPath: "app.py",
File: io.Reader(bytes.NewBuffer([]byte("REPLACE_ME"))),
Version: kernel.String("REPLACE_ME"),
_, err := client.Browsers.New(context.TODO(), kernel.BrowserNewParams{
InvocationID: "REPLACE_ME",
})
if err != nil {
var apierr *kernel.Error
if errors.As(err, &apierr) {
println(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request
println(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response
}
panic(err.Error()) // GET "/apps/deploy": 400 Bad Request { ... }
panic(err.Error()) // GET "/browsers": 400 Bad Request { ... }
}
```

Expand All @@ -327,12 +328,10 @@ To set a per-retry timeout, use `option.WithRequestTimeout()`.
// This sets the timeout for the request, including all the retries.
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancel()
client.Apps.Deploy(
client.Browsers.New(
ctx,
kernel.AppDeployParams{
EntrypointRelPath: "app.py",
File: io.Reader(bytes.NewBuffer([]byte("REPLACE_ME"))),
Version: kernel.String("REPLACE_ME"),
kernel.BrowserNewParams{
InvocationID: "REPLACE_ME",
},
// This sets the per-retry timeout
option.WithRequestTimeout(20*time.Second),
Expand All @@ -355,20 +354,20 @@ which can be used to wrap any `io.Reader` with the appropriate file name and con
```go
// A file from the file system
file, err := os.Open("/path/to/file")
kernel.AppDeployParams{
EntrypointRelPath: "app.py",
kernel.AppDeploymentNewParams{
EntrypointRelPath: "src/app.py",
File: file,
}

// A file from a string
kernel.AppDeployParams{
EntrypointRelPath: "app.py",
kernel.AppDeploymentNewParams{
EntrypointRelPath: "src/app.py",
File: strings.NewReader("my file contents"),
}

// With a custom filename and contentType
kernel.AppDeployParams{
EntrypointRelPath: "app.py",
kernel.AppDeploymentNewParams{
EntrypointRelPath: "src/app.py",
File: kernel.File(strings.NewReader(`{"hello": "foo"}`), "file.go", "application/json"),
}
```
Expand All @@ -388,12 +387,10 @@ client := kernel.NewClient(
)

// Override per-request:
client.Apps.Deploy(
client.Browsers.New(
context.TODO(),
kernel.AppDeployParams{
EntrypointRelPath: "app.py",
File: io.Reader(bytes.NewBuffer([]byte("REPLACE_ME"))),
Version: kernel.String("REPLACE_ME"),
kernel.BrowserNewParams{
InvocationID: "REPLACE_ME",
},
option.WithMaxRetries(5),
)
Expand All @@ -407,19 +404,17 @@ you need to examine response headers, status codes, or other details.
```go
// Create a variable to store the HTTP response
var response *http.Response
response, err := client.Apps.Deploy(
browser, err := client.Browsers.New(
context.TODO(),
kernel.AppDeployParams{
EntrypointRelPath: "app.py",
File: io.Reader(bytes.NewBuffer([]byte("REPLACE_ME"))),
Version: kernel.String("REPLACE_ME"),
kernel.BrowserNewParams{
InvocationID: "REPLACE_ME",
},
option.WithResponseInto(&response),
)
if err != nil {
// handle error
}
fmt.Printf("%+v\n", response)
fmt.Printf("%+v\n", browser)

fmt.Printf("Status Code: %d\n", response.StatusCode)
fmt.Printf("Headers: %+#v\n", response.Header)
Expand Down
30 changes: 21 additions & 9 deletions api.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
# Apps

## Deployments

Response Types:

- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeploymentNewResponse">AppDeploymentNewResponse</a>

Methods:

- <code title="post /deploy">client.Apps.Deployments.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeploymentService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeploymentNewParams">AppDeploymentNewParams</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeploymentNewResponse">AppDeploymentNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

## Invocations

Response Types:

- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeployResponse">AppDeployResponse</a>
- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvokeResponse">AppInvokeResponse</a>
- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppGetInvocationResponse">AppGetInvocationResponse</a>
- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationNewResponse">AppInvocationNewResponse</a>
- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationGetResponse">AppInvocationGetResponse</a>

Methods:

- <code title="post /apps/deploy">client.Apps.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppService.Deploy">Deploy</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeployParams">AppDeployParams</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppDeployResponse">AppDeployResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="post /apps/invoke">client.Apps.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppService.Invoke">Invoke</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvokeParams">AppInvokeParams</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvokeResponse">AppInvokeResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /apps/invocations/{id}">client.Apps.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppService.GetInvocation">GetInvocation</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppGetInvocationResponse">AppGetInvocationResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="post /invocations">client.Apps.Invocations.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationNewParams">AppInvocationNewParams</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationNewResponse">AppInvocationNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /invocations/{id}">client.Apps.Invocations.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#AppInvocationGetResponse">AppInvocationGetResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

# Browser
# Browsers

Response Types:

- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserNewSessionResponse">BrowserNewSessionResponse</a>
- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserNewResponse">BrowserNewResponse</a>
- <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserGetResponse">BrowserGetResponse</a>

Methods:

- <code title="post /browser">client.Browser.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserService.NewSession">NewSession</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserNewSessionParams">BrowserNewSessionParams</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserNewSessionResponse">BrowserNewSessionResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="post /browsers">client.Browsers.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserNewParams">BrowserNewParams</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserNewResponse">BrowserNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /browsers/{id}">client.Browsers.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/onkernel/kernel-go-sdk#BrowserGetResponse">BrowserGetResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
Loading