Skip to content
Open
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
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "0.1.0-alpha.1"
}
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Changelog

## 0.1.0-alpha.1 (2024-11-12)

Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/OmniStack-sh/omnistack-go/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)

### Features

* **api:** api update ([22684a0](https://github.com/OmniStack-sh/omnistack-go/commit/22684a032772fb089956907ea762bcda2dedc4aa))
* **api:** api update ([#1](https://github.com/OmniStack-sh/omnistack-go/issues/1)) ([0347365](https://github.com/OmniStack-sh/omnistack-go/commit/03473655e58ba1c27d0efb4db030f5ae951d6da3))


### Chores

* rebuild project due to codegen change ([#3](https://github.com/OmniStack-sh/omnistack-go/issues/3)) ([0310936](https://github.com/OmniStack-sh/omnistack-go/commit/03109368086e46dd404cb71f46609cfd9fa82c28))
* rebuild project due to codegen change ([#4](https://github.com/OmniStack-sh/omnistack-go/issues/4)) ([fff8229](https://github.com/OmniStack-sh/omnistack-go/commit/fff822929b7eaebef5ad640aa1ce4d101306b1d9))
* rebuild project due to codegen change ([#5](https://github.com/OmniStack-sh/omnistack-go/issues/5)) ([56b183e](https://github.com/OmniStack-sh/omnistack-go/commit/56b183ee2acaff05db03c7e6ff6630239ad6a708))
* rebuild project due to codegen change ([#6](https://github.com/OmniStack-sh/omnistack-go/issues/6)) ([739c758](https://github.com/OmniStack-sh/omnistack-go/commit/739c7587e513861525a3df88f0da234df86fa518))
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ To use a local version of this library from source in another project, edit the
directive. This can be done through the CLI with the following:

```sh
$ go mod edit -replace github.com/stainless-sdks/omnistack-go=/path/to/omnistack-go
$ go mod edit -replace github.com/OmniStack-sh/omnistack-go=/path/to/omnistack-go
```

## Running tests
Expand Down
24 changes: 16 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Omnistack Go API Library

<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go"><img src="https://pkg.go.dev/badge/github.com/stainless-sdks/omnistack-go.svg" alt="Go Reference"></a>
<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go"><img src="https://pkg.go.dev/badge/github.com/OmniStack-sh/omnistack-go.svg" alt="Go Reference"></a>

The Omnistack Go library provides convenient access to [the Omnistack REST
API](https://docs.omnistack.sh) from applications written in Go. The full API of this library can be found in [api.md](api.md).
Expand All @@ -9,18 +9,26 @@ It is generated with [Stainless](https://www.stainlessapi.com/).

## Installation

<!-- x-release-please-start-version -->

```go
import (
"github.com/stainless-sdks/omnistack-go" // imported as omnistack
"github.com/OmniStack-sh/omnistack-go" // imported as omnistack
)
```

<!-- x-release-please-end -->

Or to pin the version:

<!-- x-release-please-start-version -->

```sh
go get -u 'github.com/stainless-sdks/omnistack-go@v0.0.1-alpha.0'
go get -u 'github.com/OmniStack-sh/omnistack-go@v0.1.0-alpha.1'
```

<!-- x-release-please-end -->

## Requirements

This library requires Go 1.18+.
Expand All @@ -36,9 +44,9 @@ import (
"context"
"fmt"

"github.com/stainless-sdks/omnistack-go"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/stainless-sdks/omnistack-go/shared"
"github.com/OmniStack-sh/omnistack-go"
"github.com/OmniStack-sh/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/shared"
)

func main() {
Expand Down Expand Up @@ -149,7 +157,7 @@ client.Completions.New(context.TODO(), ...,
)
```

See the [full list of request options](https://pkg.go.dev/github.com/stainless-sdks/omnistack-go/option).
See the [full list of request options](https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go/option).

### Pagination

Expand Down Expand Up @@ -342,7 +350,7 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con

We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.

We are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/omnistack-go/issues) with questions, bugs, or suggestions.
We are keen for your feedback; please open an [issue](https://www.github.com/OmniStack-sh/omnistack-go/issues) with questions, bugs, or suggestions.

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion aliases.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
package omnistack

import (
"github.com/stainless-sdks/omnistack-go/internal/apierror"
"github.com/OmniStack-sh/omnistack-go/internal/apierror"
)

type Error = apierror.Error
8 changes: 4 additions & 4 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@

Response Types:

- <a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#ChatCompletionNewResponse">ChatCompletionNewResponse</a>
- <a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#ChatCompletionNewResponse">ChatCompletionNewResponse</a>

Methods:

- <code title="post /chat/completions">client.Chats.Completions.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#ChatCompletionService.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/stainless-sdks/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#ChatCompletionNewParams">ChatCompletionNewParams</a>) (<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#ChatCompletionNewResponse">ChatCompletionNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="post /chat/completions">client.Chats.Completions.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#ChatCompletionService.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/OmniStack-sh/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#ChatCompletionNewParams">ChatCompletionNewParams</a>) (<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#ChatCompletionNewResponse">ChatCompletionNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

# Completions

Response Types:

- <a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#CompletionNewResponse">CompletionNewResponse</a>
- <a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#CompletionNewResponse">CompletionNewResponse</a>

Methods:

- <code title="post /completions">client.Completions.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#CompletionService.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/stainless-sdks/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#CompletionNewParams">CompletionNewParams</a>) (<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#CompletionNewResponse">CompletionNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="post /completions">client.Completions.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#CompletionService.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/OmniStack-sh/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#CompletionNewParams">CompletionNewParams</a>) (<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go">omnistack</a>.<a href="https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#CompletionNewResponse">CompletionNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
2 changes: 1 addition & 1 deletion chat.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
package omnistack

import (
"github.com/stainless-sdks/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/option"
)

// ChatService contains methods and other services that help with interacting with
Expand Down
35 changes: 19 additions & 16 deletions chatcompletion.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import (
"context"
"net/http"

"github.com/stainless-sdks/omnistack-go/internal/apijson"
"github.com/stainless-sdks/omnistack-go/internal/param"
"github.com/stainless-sdks/omnistack-go/internal/requestconfig"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/internal/apijson"
"github.com/OmniStack-sh/omnistack-go/internal/param"
"github.com/OmniStack-sh/omnistack-go/internal/requestconfig"
"github.com/OmniStack-sh/omnistack-go/option"
)

// ChatCompletionService contains methods and other services that help with
Expand Down Expand Up @@ -718,18 +718,18 @@ func (r ChatCompletionNewParams) MarshalJSON() (data []byte, err error) {
}

type ChatCompletionNewParamsMessage struct {
Content param.Field[interface{}] `json:"content,required"`
// The role of the messages author, in this case `system`.
Role param.Field[ChatCompletionNewParamsMessagesRole] `json:"role,required"`
Role param.Field[ChatCompletionNewParamsMessagesRole] `json:"role,required"`
Content param.Field[interface{}] `json:"content"`
FunctionCall param.Field[interface{}] `json:"function_call"`
// An optional name for the participant. Provides the model information to
// differentiate between participants of the same role.
Name param.Field[string] `json:"name"`
// The refusal message by the assistant.
Refusal param.Field[string] `json:"refusal"`
ToolCalls param.Field[interface{}] `json:"tool_calls,required"`
FunctionCall param.Field[interface{}] `json:"function_call,required"`
Refusal param.Field[string] `json:"refusal"`
// Tool call that this message is responding to.
ToolCallID param.Field[string] `json:"tool_call_id"`
ToolCallID param.Field[string] `json:"tool_call_id"`
ToolCalls param.Field[interface{}] `json:"tool_calls"`
}

func (r ChatCompletionNewParamsMessage) MarshalJSON() (data []byte, err error) {
Expand Down Expand Up @@ -852,10 +852,10 @@ func (r ChatCompletionNewParamsMessagesChatCompletionRequestUserMessageContentAr

type ChatCompletionNewParamsMessagesChatCompletionRequestUserMessageContentArrayOfContentPart struct {
// The type of the content part.
Type param.Field[ChatCompletionNewParamsMessagesChatCompletionRequestUserMessageContentArrayOfContentPartsType] `json:"type,required"`
Type param.Field[ChatCompletionNewParamsMessagesChatCompletionRequestUserMessageContentArrayOfContentPartsType] `json:"type,required"`
ImageURL param.Field[interface{}] `json:"image_url"`
// The text content.
Text param.Field[string] `json:"text"`
ImageURL param.Field[interface{}] `json:"image_url,required"`
Text param.Field[string] `json:"text"`
}

func (r ChatCompletionNewParamsMessagesChatCompletionRequestUserMessageContentArrayOfContentPart) MarshalJSON() (data []byte, err error) {
Expand Down Expand Up @@ -1048,10 +1048,10 @@ func (r ChatCompletionNewParamsMessagesChatCompletionRequestAssistantMessageCont
type ChatCompletionNewParamsMessagesChatCompletionRequestAssistantMessageContentArrayOfContentPart struct {
// The type of the content part.
Type param.Field[ChatCompletionNewParamsMessagesChatCompletionRequestAssistantMessageContentArrayOfContentPartsType] `json:"type,required"`
// The text content.
Text param.Field[string] `json:"text"`
// The refusal message generated by the model.
Refusal param.Field[string] `json:"refusal"`
// The text content.
Text param.Field[string] `json:"text"`
}

func (r ChatCompletionNewParamsMessagesChatCompletionRequestAssistantMessageContentArrayOfContentPart) MarshalJSON() (data []byte, err error) {
Expand Down Expand Up @@ -1322,6 +1322,9 @@ func (r ChatCompletionNewParamsMessagesRole) IsKnown() bool {
return false
}

// ID of the model to use. See the
// [model endpoint compatibility](/docs/models/model-endpoint-compatibility) table
// for details on which models work with the Chat API.
type ChatCompletionNewParamsModel string

const (
Expand Down Expand Up @@ -1458,7 +1461,7 @@ func (r ChatCompletionNewParamsFunction) MarshalJSON() (data []byte, err error)
type ChatCompletionNewParamsResponseFormat struct {
// The type of response format being defined: `text`
Type param.Field[ChatCompletionNewParamsResponseFormatType] `json:"type,required"`
JsonSchema param.Field[interface{}] `json:"json_schema,required"`
JsonSchema param.Field[interface{}] `json:"json_schema"`
}

func (r ChatCompletionNewParamsResponseFormat) MarshalJSON() (data []byte, err error) {
Expand Down
8 changes: 4 additions & 4 deletions chatcompletion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import (
"os"
"testing"

"github.com/stainless-sdks/omnistack-go"
"github.com/stainless-sdks/omnistack-go/internal/testutil"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/stainless-sdks/omnistack-go/shared"
"github.com/OmniStack-sh/omnistack-go"
"github.com/OmniStack-sh/omnistack-go/internal/testutil"
"github.com/OmniStack-sh/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/shared"
)

func TestChatCompletionNewWithOptionalParams(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (
"net/http"
"os"

"github.com/stainless-sdks/omnistack-go/internal/requestconfig"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/internal/requestconfig"
"github.com/OmniStack-sh/omnistack-go/option"
)

// Client creates a struct with services and top level methods that help with
Expand Down
8 changes: 4 additions & 4 deletions client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import (
"testing"
"time"

"github.com/stainless-sdks/omnistack-go"
"github.com/stainless-sdks/omnistack-go/internal"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/stainless-sdks/omnistack-go/shared"
"github.com/OmniStack-sh/omnistack-go"
"github.com/OmniStack-sh/omnistack-go/internal"
"github.com/OmniStack-sh/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/shared"
)

type closureTransport struct {
Expand Down
12 changes: 8 additions & 4 deletions completion.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import (
"context"
"net/http"

"github.com/stainless-sdks/omnistack-go/internal/apijson"
"github.com/stainless-sdks/omnistack-go/internal/param"
"github.com/stainless-sdks/omnistack-go/internal/requestconfig"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/internal/apijson"
"github.com/OmniStack-sh/omnistack-go/internal/param"
"github.com/OmniStack-sh/omnistack-go/internal/requestconfig"
"github.com/OmniStack-sh/omnistack-go/option"
)

// CompletionService contains methods and other services that help with interacting
Expand Down Expand Up @@ -347,6 +347,10 @@ func (r CompletionNewParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}

// ID of the model to use. You can use the
// [List models](/docs/api-reference/models/list) API to see all of your available
// models, or see our [Model overview](/docs/models/overview) for descriptions of
// them.
type CompletionNewParamsModel string

const (
Expand Down
8 changes: 4 additions & 4 deletions completion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import (
"os"
"testing"

"github.com/stainless-sdks/omnistack-go"
"github.com/stainless-sdks/omnistack-go/internal/testutil"
"github.com/stainless-sdks/omnistack-go/option"
"github.com/stainless-sdks/omnistack-go/shared"
"github.com/OmniStack-sh/omnistack-go"
"github.com/OmniStack-sh/omnistack-go/internal/testutil"
"github.com/OmniStack-sh/omnistack-go/option"
"github.com/OmniStack-sh/omnistack-go/shared"
)

func TestCompletionNewWithOptionalParams(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions field.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package omnistack

import (
"github.com/stainless-sdks/omnistack-go/internal/param"
"github.com/OmniStack-sh/omnistack-go/internal/param"
"io"
)

// F is a param field helper used to initialize a [param.Field] generic struct.
// This helps specify null, zero values, and overrides, as well as normal values.
// You can read more about this in our [README].
//
// [README]: https://pkg.go.dev/github.com/stainless-sdks/omnistack-go#readme-request-fields
// [README]: https://pkg.go.dev/github.com/OmniStack-sh/omnistack-go#readme-request-fields
func F[T any](value T) param.Field[T] { return param.Field[T]{Value: value, Present: true} }

// Null is a param field helper which explicitly sends null to the API.
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/stainless-sdks/omnistack-go
module github.com/OmniStack-sh/omnistack-go

go 1.21

Expand Down
2 changes: 1 addition & 1 deletion internal/apierror/apierror.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"net/http"
"net/http/httputil"

"github.com/stainless-sdks/omnistack-go/internal/apijson"
"github.com/OmniStack-sh/omnistack-go/internal/apijson"
)

// Error represents an error that originates from the API, i.e. when a request is
Expand Down
2 changes: 1 addition & 1 deletion internal/apiform/encoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"sync"
"time"

"github.com/stainless-sdks/omnistack-go/internal/param"
"github.com/OmniStack-sh/omnistack-go/internal/param"
)

var encoders sync.Map // map[encoderEntry]encoderFunc
Expand Down
15 changes: 11 additions & 4 deletions internal/apijson/encoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ import (
"reflect"
"sort"
"strconv"
"strings"
"sync"
"time"

"github.com/tidwall/sjson"

"github.com/stainless-sdks/omnistack-go/internal/param"
"github.com/OmniStack-sh/omnistack-go/internal/param"
)

var encoders sync.Map // map[encoderEntry]encoderFunc
Expand Down Expand Up @@ -342,16 +343,18 @@ func (e *encoder) encodeMapEntries(json []byte, v reflect.Value) ([]byte, error)

iter := v.MapRange()
for iter.Next() {
var encodedKey []byte
var encodedKeyString string
if iter.Key().Type().Kind() == reflect.String {
encodedKey = []byte(iter.Key().String())
encodedKeyString = iter.Key().String()
} else {
var err error
encodedKey, err = keyEncoder(iter.Key())
encodedKeyBytes, err := keyEncoder(iter.Key())
if err != nil {
return nil, err
}
encodedKeyString = string(encodedKeyBytes)
}
encodedKey := []byte(sjsonReplacer.Replace(encodedKeyString))
pairs = append(pairs, mapPair{key: encodedKey, value: iter.Value()})
}

Expand Down Expand Up @@ -389,3 +392,7 @@ func (e *encoder) newMapEncoder(t reflect.Type) encoderFunc {
return json, nil
}
}

// If we want to set a literal key value into JSON using sjson, we need to make sure it doesn't have
// special characters that sjson interprets as a path.
var sjsonReplacer *strings.Replacer = strings.NewReplacer(".", "\\.", ":", "\\:", "*", "\\*")
Loading