feat: improve file watcher with chokidar and better ignore patterns (#2621)

Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
Dax
2025-09-16 00:17:10 -04:00
committed by GitHub
parent 52fb571739
commit 14cb2d2af6
16 changed files with 180 additions and 62 deletions

View File

@@ -8,12 +8,15 @@ import (
"fmt"
"net/http"
"net/url"
"reflect"
"github.com/sst/opencode-sdk-go/internal/apijson"
"github.com/sst/opencode-sdk-go/internal/apiquery"
"github.com/sst/opencode-sdk-go/internal/param"
"github.com/sst/opencode-sdk-go/internal/requestconfig"
"github.com/sst/opencode-sdk-go/option"
"github.com/sst/opencode-sdk-go/shared"
"github.com/tidwall/gjson"
)
// SessionPermissionService contains methods and other services that help with
@@ -60,7 +63,7 @@ type Permission struct {
Title string `json:"title,required"`
Type string `json:"type,required"`
CallID string `json:"callID"`
Pattern string `json:"pattern"`
Pattern PermissionPatternUnion `json:"pattern"`
JSON permissionJSON `json:"-"`
}
@@ -107,6 +110,30 @@ func (r permissionTimeJSON) RawJSON() string {
return r.raw
}
// Union satisfied by [shared.UnionString] or [PermissionPatternArray].
type PermissionPatternUnion interface {
ImplementsPermissionPatternUnion()
}
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*PermissionPatternUnion)(nil)).Elem(),
"",
apijson.UnionVariant{
TypeFilter: gjson.String,
Type: reflect.TypeOf(shared.UnionString("")),
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(PermissionPatternArray{}),
},
)
}
type PermissionPatternArray []string
func (r PermissionPatternArray) ImplementsPermissionPatternUnion() {}
type SessionPermissionRespondParams struct {
Response param.Field[SessionPermissionRespondParamsResponse] `json:"response,required"`
Directory param.Field[string] `query:"directory"`