Skip to content

Commit f030d29

Browse files
authored
refactor(selector) replace pre and postrun with middleware pattern (#34)
* refactor(selector) replace pre and postrun with middleware pattern * update docs * update deps
1 parent 5e3b368 commit f030d29

File tree

15 files changed

+321
-322
lines changed

15 files changed

+321
-322
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,11 @@ config := &ophis.Config{
9191
LocalFlagSelector: ophis.ExcludeFlags("token", "secret"),
9292
InheritedFlagSelector: ophis.NoFlags, // Exclude persistent flags
9393

94-
// Add timeout for these commands
95-
PreRun: func(ctx context.Context, ctr *mcp.CallToolRequest, ti ophis.ToolInput) (context.Context, *mcp.CallToolRequest, ophis.ToolInput) {
96-
ctx, _ = context.WithTimeout(ctx, time.Minute)
97-
return ctx, ctr, ti
94+
// Middleware wraps command execution
95+
Middleware: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput, next func(context.Context, *mcp.CallToolRequest, ophis.ToolInput) (*mcp.CallToolResult, ophis.ToolOutput, error)) (*mcp.CallToolResult, ophis.ToolOutput, error) {
96+
ctx, cancel := context.WithTimeout(ctx, time.Minute)
97+
defer cancel()
98+
return next(ctx, req, in)
9899
},
99100
},
100101
},

doc.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,14 @@
6262
// // Control which flags are included for matched commands
6363
// LocalFlagSelector: ophis.AllowFlags("namespace", "output"),
6464
// InheritedFlagSelector: ophis.NoFlags, // Exclude persistent flags
65-
// // Optional: Add middleware hooks
66-
// PreRun: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput) (context.Context, *mcp.CallToolRequest, ophis.ToolInput) {
67-
// // Add timeout, logging, auth checks, etc.
68-
// return ctx, req, in
69-
// },
70-
// PostRun: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput, res *mcp.CallToolResult, out ophis.ToolOutput, err error) (*mcp.CallToolResult, ophis.ToolOutput, error) {
71-
// // Error handling, response filtering, metrics
65+
// // Optional: Add middleware to wrap execution
66+
// Middleware: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput, next func(context.Context, *mcp.CallToolRequest, ophis.ToolInput) (*mcp.CallToolResult, ophis.ToolOutput, error)) (*mcp.CallToolResult, ophis.ToolOutput, error) {
67+
// // Pre-execution: timeout, logging, auth checks, etc.
68+
// ctx, cancel := context.WithTimeout(ctx, time.Minute)
69+
// defer cancel()
70+
// // Execute the command
71+
// res, out, err := next(ctx, req, in)
72+
// // Post-execution: error handling, response filtering, metrics
7273
// return res, out, err
7374
// },
7475
// },
@@ -86,7 +87,7 @@
8687
// }
8788
//
8889
// The selector system allows different commands to have different flag filtering
89-
// rules and middleware hooks, enabling precise control over the exposed tool surface.
90+
// rules and middleware, enabling precise control over the exposed tool surface.
9091
// Each selector defines which commands to match, which flags to include, and optional
91-
// PreRun/PostRun hooks for middleware functionality like timeouts, logging, and filtering.
92+
// middleware for wrapping execution with timeouts, logging, and response filtering.
9293
package ophis

docs/config.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,10 @@ config := &ophis.Config{
5353
{
5454
// Read ops: timeout
5555
CmdSelector: ophis.AllowCmdsContaining("get", "list"),
56-
PreRun: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput) (context.Context, *mcp.CallToolRequest, ophis.ToolInput) {
57-
ctx, _ = context.WithTimeout(ctx, time.Minute)
58-
return ctx, req, in
56+
Middleware: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput, next func(context.Context, *mcp.CallToolRequest, ophis.ToolInput) (*mcp.CallToolResult, ophis.ToolOutput, error)) (*mcp.CallToolResult, ophis.ToolOutput, error) {
57+
ctx, cancel := context.WithTimeout(ctx, time.Minute)
58+
defer cancel()
59+
return next(ctx, req, in)
5960
},
6061
},
6162
{
@@ -107,23 +108,23 @@ config := &ophis.Config{
107108

108109
## Middleware
109110

110-
Add behavior before/after execution:
111+
Wrap execution with custom logic:
111112

112113
```go
113-
PreRun: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput) (context.Context, *mcp.CallToolRequest, ophis.ToolInput) {
114-
// Add timeout
115-
ctx, _ = context.WithTimeout(ctx, 30*time.Second)
114+
Middleware: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput, next func(context.Context, *mcp.CallToolRequest, ophis.ToolInput) (*mcp.CallToolResult, ophis.ToolOutput, error)) (*mcp.CallToolResult, ophis.ToolOutput, error) {
115+
// Pre-execution: Add timeout
116+
ctx, cancel := context.WithTimeout(ctx, 30*time.Second)
117+
defer cancel()
116118

117-
// Validate input
119+
// Pre-execution: Validate input
118120
if len(in.Args) > 10 {
119121
in.Args = in.Args[:10]
120122
}
121123

122-
return ctx, req, in
123-
}
124+
// Execute the command
125+
res, out, err := next(ctx, req, in)
124126

125-
PostRun: func(ctx context.Context, req *mcp.CallToolRequest, in ophis.ToolInput, res *mcp.CallToolResult, out ophis.ToolOutput, err error) (*mcp.CallToolResult, ophis.ToolOutput, error) {
126-
// Filter output
127+
// Post-execution: Filter output
127128
if strings.Contains(out.StdOut, "SECRET") {
128129
out.StdOut = "[REDACTED]"
129130
}

docs/execution.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ When an AI assistant calls an MCP tool, Ophis executes your CLI as a subprocess.
44

55
## Execution Flow
66

7-
1. **PreRun Middleware** (optional) - Runs before execution
7+
1. **Middleware** (optional) - Wraps execution with custom logic
88
2. **Command Execution** - Spawns CLI subprocess, captures output
9-
3. **PostRun Middleware** (optional) - Runs after execution
109

1110
## Command Construction
1211

@@ -54,7 +53,7 @@ Non-zero exit codes indicate command errors (not execution failures).
5453
## Cancellation
5554

5655
Execution can be cancelled by:
57-
- PreRun returning cancelled context
56+
- Middleware returning early without calling next
5857
- MCP client cancelling request
5958
- Parent context timeout
6059

examples/argocd/go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ go 1.25.0
55
replace github.com/njayp/ophis => ../../
66

77
require (
8-
github.com/argoproj/argo-cd/v3 v3.2.0
8+
github.com/argoproj/argo-cd/v3 v3.2.1
99
github.com/njayp/ophis v0.0.0-00010101000000-000000000000
10-
github.com/spf13/cobra v1.10.1
10+
github.com/spf13/cobra v1.10.2
1111
k8s.io/klog/v2 v2.130.1
1212
)
1313

@@ -34,7 +34,7 @@ require (
3434
github.com/RocketChat/Rocket.Chat.Go.SDK v0.0.0-20240116134246-a8cbe886bab0 // indirect
3535
github.com/TomOnTime/utfutil v1.0.0 // indirect
3636
github.com/alicebob/miniredis/v2 v2.35.0 // indirect
37-
github.com/argoproj/gitops-engine v0.7.1-0.20251006172252-b89b0871b414 // indirect
37+
github.com/argoproj/gitops-engine v0.7.1-0.20251108235403-13d5172d3ee2 // indirect
3838
github.com/argoproj/notifications-engine v0.4.1-0.20250908182349-da04400446ff // indirect
3939
github.com/argoproj/pkg v0.13.6 // indirect
4040
github.com/argoproj/pkg/v2 v2.0.1 // indirect
@@ -221,7 +221,7 @@ require (
221221
go.yaml.in/yaml/v3 v3.0.4 // indirect
222222
golang.org/x/crypto v0.42.0 // indirect
223223
golang.org/x/net v0.44.0 // indirect
224-
golang.org/x/oauth2 v0.32.0 // indirect
224+
golang.org/x/oauth2 v0.33.0 // indirect
225225
golang.org/x/sync v0.17.0 // indirect
226226
golang.org/x/sys v0.36.0 // indirect
227227
golang.org/x/term v0.35.0 // indirect

examples/argocd/go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFI
103103
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
104104
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
105105
github.com/appscode/go v0.0.0-20191119085241-0887d8ec2ecc/go.mod h1:OawnOmAL4ZX3YaPdN+8HTNwBveT1jMsqP74moa9XUbE=
106-
github.com/argoproj/argo-cd/v3 v3.2.0 h1:m2eGAV+nXQGgzZbH5SyJD5laaPW27mzWXBrgisUHY/0=
107-
github.com/argoproj/argo-cd/v3 v3.2.0/go.mod h1:l68oMtd8AljakHA+bKwev0WxfDu+GdnuwSrSAJHD1/4=
108-
github.com/argoproj/gitops-engine v0.7.1-0.20251006172252-b89b0871b414 h1:2w1vd2VZja7Mlf/rblJkp6/Eq8fNDuM7p6pI4PTAJhg=
109-
github.com/argoproj/gitops-engine v0.7.1-0.20251006172252-b89b0871b414/go.mod h1:2nqYZBhj8CfVZb3ATakZpi1KNb/yc7mpadIHslicTFI=
106+
github.com/argoproj/argo-cd/v3 v3.2.1 h1:rvrkW/JdH4V+xJgNDZI9wa/Ygd+fWoGbd1rAhvno22c=
107+
github.com/argoproj/argo-cd/v3 v3.2.1/go.mod h1:xDj7UVJxzRjiECiZ1qRGdIrDpqwWXZE+C12Xjbq7RQ8=
108+
github.com/argoproj/gitops-engine v0.7.1-0.20251108235403-13d5172d3ee2 h1:g9XclEd+1mYQtpLL3rMgYbMUdB3kEppw3+Jd1/H54VM=
109+
github.com/argoproj/gitops-engine v0.7.1-0.20251108235403-13d5172d3ee2/go.mod h1:2nqYZBhj8CfVZb3ATakZpi1KNb/yc7mpadIHslicTFI=
110110
github.com/argoproj/notifications-engine v0.4.1-0.20250908182349-da04400446ff h1:pGGAeHIktPuYCRl1Z540XdxPFnedqyUhJK4VgpyJZfY=
111111
github.com/argoproj/notifications-engine v0.4.1-0.20250908182349-da04400446ff/go.mod h1:d1RazGXWvKRFv9//rg4MRRR7rbvbE7XLgTSMT5fITTE=
112112
github.com/argoproj/pkg v0.13.6 h1:36WPD9MNYECHcO1/R1pj6teYspiK7uMQLCgLGft2abM=
@@ -791,8 +791,8 @@ github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
791791
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
792792
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
793793
github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM=
794-
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
795-
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
794+
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
795+
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
796796
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
797797
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
798798
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
@@ -1006,8 +1006,8 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr
10061006
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
10071007
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
10081008
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
1009-
golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
1010-
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
1009+
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
1010+
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
10111011
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10121012
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10131013
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

examples/helm/go.mod

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ go 1.25.0
55
replace github.com/njayp/ophis => ../../
66

77
require (
8-
github.com/njayp/ophis v1.0.8
9-
github.com/spf13/cobra v1.10.1
10-
helm.sh/helm/v4 v4.0.0-rc.1
11-
k8s.io/client-go v0.34.1
8+
github.com/njayp/ophis v1.0.9
9+
github.com/spf13/cobra v1.10.2
10+
helm.sh/helm/v4 v4.0.1
11+
k8s.io/client-go v0.34.2
1212
)
1313

1414
require (
@@ -29,7 +29,7 @@ require (
2929
github.com/clipperhouse/uax29/v2 v2.3.0 // indirect
3030
github.com/cloudflare/circl v1.6.1 // indirect
3131
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
32-
github.com/cyphar/filepath-securejoin v0.6.0 // indirect
32+
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
3333
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
3434
github.com/dylibso/observe-sdk/go v0.0.0-20240828172851-9145d8ad07e1 // indirect
3535
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
@@ -42,33 +42,33 @@ require (
4242
github.com/go-errors/errors v1.5.1 // indirect
4343
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
4444
github.com/go-logr/logr v1.4.3 // indirect
45-
github.com/go-openapi/jsonpointer v0.22.1 // indirect
46-
github.com/go-openapi/jsonreference v0.21.2 // indirect
47-
github.com/go-openapi/swag v0.25.1 // indirect
48-
github.com/go-openapi/swag/cmdutils v0.25.1 // indirect
49-
github.com/go-openapi/swag/conv v0.25.1 // indirect
50-
github.com/go-openapi/swag/fileutils v0.25.1 // indirect
51-
github.com/go-openapi/swag/jsonname v0.25.1 // indirect
52-
github.com/go-openapi/swag/jsonutils v0.25.1 // indirect
53-
github.com/go-openapi/swag/loading v0.25.1 // indirect
54-
github.com/go-openapi/swag/mangling v0.25.1 // indirect
55-
github.com/go-openapi/swag/netutils v0.25.1 // indirect
56-
github.com/go-openapi/swag/stringutils v0.25.1 // indirect
57-
github.com/go-openapi/swag/typeutils v0.25.1 // indirect
58-
github.com/go-openapi/swag/yamlutils v0.25.1 // indirect
45+
github.com/go-openapi/jsonpointer v0.22.3 // indirect
46+
github.com/go-openapi/jsonreference v0.21.3 // indirect
47+
github.com/go-openapi/swag v0.25.4 // indirect
48+
github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
49+
github.com/go-openapi/swag/conv v0.25.4 // indirect
50+
github.com/go-openapi/swag/fileutils v0.25.4 // indirect
51+
github.com/go-openapi/swag/jsonname v0.25.4 // indirect
52+
github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
53+
github.com/go-openapi/swag/loading v0.25.4 // indirect
54+
github.com/go-openapi/swag/mangling v0.25.4 // indirect
55+
github.com/go-openapi/swag/netutils v0.25.4 // indirect
56+
github.com/go-openapi/swag/stringutils v0.25.4 // indirect
57+
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
58+
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
5959
github.com/gobwas/glob v0.2.3 // indirect
6060
github.com/gofrs/flock v0.13.0 // indirect
6161
github.com/gogo/protobuf v1.3.2 // indirect
6262
github.com/google/btree v1.1.3 // indirect
63-
github.com/google/gnostic-models v0.7.0 // indirect
63+
github.com/google/gnostic-models v0.7.1 // indirect
6464
github.com/google/go-cmp v0.7.0 // indirect
6565
github.com/google/jsonschema-go v0.3.0 // indirect
6666
github.com/google/uuid v1.6.0 // indirect
6767
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
6868
github.com/gosuri/uitable v0.0.4 // indirect
6969
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
7070
github.com/huandu/xstrings v1.5.0 // indirect
71-
github.com/ianlancetaylor/demangle v0.0.0-20250628045327-2d64ad6b7ec5 // indirect
71+
github.com/ianlancetaylor/demangle v0.0.0-20251118225945-96ee0021ea0f // indirect
7272
github.com/inconshreveable/mousetrap v1.1.0 // indirect
7373
github.com/jmoiron/sqlx v1.4.0 // indirect
7474
github.com/json-iterator/go v1.1.12 // indirect
@@ -94,48 +94,47 @@ require (
9494
github.com/opencontainers/image-spec v1.1.1 // indirect
9595
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
9696
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
97-
github.com/rubenv/sql-migrate v1.8.0 // indirect
97+
github.com/rubenv/sql-migrate v1.8.1 // indirect
9898
github.com/russross/blackfriday/v2 v2.1.0 // indirect
9999
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
100100
github.com/shopspring/decimal v1.4.0 // indirect
101101
github.com/spf13/cast v1.10.0 // indirect
102102
github.com/spf13/pflag v1.0.10 // indirect
103103
github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 // indirect
104-
github.com/tetratelabs/wazero v1.9.0 // indirect
104+
github.com/tetratelabs/wazero v1.10.1 // indirect
105105
github.com/x448/float16 v0.8.4 // indirect
106106
github.com/xlab/treeprint v1.2.0 // indirect
107107
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
108108
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
109109
go.yaml.in/yaml/v2 v2.4.3 // indirect
110110
go.yaml.in/yaml/v3 v3.0.4 // indirect
111-
golang.org/x/crypto v0.43.0 // indirect
112-
golang.org/x/net v0.46.0 // indirect
113-
golang.org/x/oauth2 v0.32.0 // indirect
114-
golang.org/x/sync v0.17.0 // indirect
115-
golang.org/x/sys v0.37.0 // indirect
116-
golang.org/x/term v0.36.0 // indirect
117-
golang.org/x/text v0.30.0 // indirect
111+
golang.org/x/crypto v0.45.0 // indirect
112+
golang.org/x/net v0.47.0 // indirect
113+
golang.org/x/oauth2 v0.33.0 // indirect
114+
golang.org/x/sync v0.18.0 // indirect
115+
golang.org/x/sys v0.38.0 // indirect
116+
golang.org/x/term v0.37.0 // indirect
117+
golang.org/x/text v0.31.0 // indirect
118118
golang.org/x/time v0.14.0 // indirect
119119
google.golang.org/protobuf v1.36.10 // indirect
120120
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
121121
gopkg.in/inf.v0 v0.9.1 // indirect
122-
gopkg.in/yaml.v3 v3.0.1 // indirect
123-
k8s.io/api v0.34.1 // indirect
124-
k8s.io/apiextensions-apiserver v0.34.1 // indirect
125-
k8s.io/apimachinery v0.34.1 // indirect
126-
k8s.io/apiserver v0.34.1 // indirect
127-
k8s.io/cli-runtime v0.34.1 // indirect
128-
k8s.io/component-base v0.34.1 // indirect
122+
k8s.io/api v0.34.2 // indirect
123+
k8s.io/apiextensions-apiserver v0.34.2 // indirect
124+
k8s.io/apimachinery v0.34.2 // indirect
125+
k8s.io/apiserver v0.34.2 // indirect
126+
k8s.io/cli-runtime v0.34.2 // indirect
127+
k8s.io/component-base v0.34.2 // indirect
129128
k8s.io/klog/v2 v2.130.1 // indirect
130-
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
131-
k8s.io/kubectl v0.34.1 // indirect
129+
k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e // indirect
130+
k8s.io/kubectl v0.34.2 // indirect
132131
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
133132
oras.land/oras-go/v2 v2.6.0 // indirect
134133
sigs.k8s.io/controller-runtime v0.22.4 // indirect
135134
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
136-
sigs.k8s.io/kustomize/api v0.20.1 // indirect
137-
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
135+
sigs.k8s.io/kustomize/api v0.21.0 // indirect
136+
sigs.k8s.io/kustomize/kyaml v0.21.0 // indirect
138137
sigs.k8s.io/randfill v1.0.0 // indirect
139-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
138+
sigs.k8s.io/structured-merge-diff/v6 v6.3.1 // indirect
140139
sigs.k8s.io/yaml v1.6.0 // indirect
141140
)

0 commit comments

Comments
 (0)