mirror of
https://github.com/mudler/LocalAI.git
synced 2026-05-17 13:10:23 -04:00
* fix(http): close 0.0.0.0/[::] SSRF bypass in /api/cors-proxy The CORS proxy carried its own private-network blocklist (RFC 1918 + a handful of IPv6 ranges) instead of using the same classification as pkg/utils/urlfetch.go. The hand-rolled list missed 0.0.0.0/8 and ::/128, both of which Linux routes to localhost — so any user with FeatureMCP (default-on for new users) could reach LocalAI's own listener and any other service bound to 0.0.0.0:port via: GET /api/cors-proxy?url=http://0.0.0.0:8080/... GET /api/cors-proxy?url=http://[::]:8080/... Replace the custom check with utils.IsPublicIP (Go stdlib IsLoopback / IsLinkLocalUnicast / IsPrivate / IsUnspecified, plus IPv4-mapped IPv6 unmasking) and add an upfront hostname rejection for localhost, *.local, and the cloud metadata aliases so split-horizon DNS can't paper over the IP check. The IP-pinning DialContext is unchanged: the validated IP from the single resolution is reused for the connection, so DNS rebinding still cannot swap a public answer for a private one between validate and dial. Regression tests cover 0.0.0.0, 0.0.0.0:PORT, [::], ::ffff:127.0.0.1, ::ffff:10.0.0.1, file://, gopher://, ftp://, localhost, 127.0.0.1, 10.0.0.1, 169.254.169.254, metadata.google.internal. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(downloader): verify SHA before promoting temp file to final path DownloadFileWithContext renamed the .partial file to its final name *before* checking the streamed SHA, so a hash mismatch returned an error but left the tampered file at filePath. Subsequent code that operated on filePath (a backend launcher, a YAML loader, a re-download that finds the file already present and skips) would consume the attacker-supplied bytes. Reorder: verify the streamed hash first, remove the .partial on mismatch, then rename. The streamed hash is computed during io.Copy so no second read is needed. While here, raise the empty-SHA case from a Debug log to a Warn so "this download had no integrity check" is visible at the default log level. Backend installs currently pass through with no digest; the warning makes that footprint observable without changing behaviour. Regression test asserts os.IsNotExist on the destination after a deliberate SHA mismatch. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(auth): require email_verified for OIDC admin promotion extractOIDCUserInfo read the ID token's "email" claim but never inspected "email_verified". With LOCALAI_ADMIN_EMAIL set, an attacker who could register on the configured OIDC IdP under that email (some IdPs accept self-supplied unverified emails) inherited admin role: - first login: AssignRole(tx, email, adminEmail) → RoleAdmin - re-login: MaybePromote(db, user, adminEmail) → flip to RoleAdmin Add EmailVerified to oauthUserInfo, parse email_verified from the OIDC claims (default false on absence so an IdP that omits the claim cannot short-circuit the gate), and substitute "" for the role-decision email when verified=false via emailForRoleDecision. The user record still stores the unverified email for display. GitHub's path defaults EmailVerified=true: GitHub only returns a public profile email after verification, and fetchGitHubPrimaryEmail explicitly filters to Verified=true. Regression tests cover both the helper contract and integration with AssignRole, including the bootstrap "first user" branch that would otherwise mask the gate. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(cli): refuse public bind when no auth backend is configured When neither an auth DB nor a static API key is set, the auth middleware passes every request through. That is fine for a developer laptop, a home LAN, or a Tailnet — the network itself is the trust boundary. It is not fine on a public IP, where every model install, settings change, and admin endpoint becomes reachable from the internet. Refuse to start in that exact configuration. Loopback, RFC 1918, RFC 4193 ULA, link-local, and RFC 6598 CGNAT (Tailscale's default range) all count as trusted; wildcard binds (`:port`, `0.0.0.0`, `[::]`) are accepted only when every host interface is in one of those ranges. Hostnames are resolved and treated as trusted only when every answer is. A new --allow-insecure-public-bind / LOCALAI_ALLOW_INSECURE_PUBLIC_BIND flag opts out for deployments that gate access externally (a reverse proxy enforcing auth, a mesh ACL, etc.). The error message lists this plus the three constructive alternatives (bind a private interface, enable --auth, set --api-keys). The interface enumeration goes through a package-level interfaceAddrsFn var so tests can simulate cloud-VM, home-LAN, Tailscale-only, and enumeration-failure topologies without poking at the real network stack. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * test(http): regression-test the localai_assistant admin gate ChatEndpoint already rejects metadata.localai_assistant=true from a non-admin caller, but the gate was open-coded inline with no direct test coverage. The chat route is FeatureChat-gated (default-on), and the assistant's in-process MCP server can install/delete models and edit configs — the wrong handler change would silently turn the LLM into a confused deputy. Extract the gate into requireAssistantAccess(c, authEnabled) and pin its behaviour: auth disabled is a no-op, unauthenticated is 403, RoleUser is 403, RoleAdmin and the synthetic legacy-key admin are admitted. No behaviour change in the production path. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * test(http): assert every API route is auth-classified The auth middleware classifies path prefixes (/api/, /v1/, /models/, etc.) as protected and treats anything else as a static-asset passthrough. A new endpoint shipped under a brand-new prefix — or a new path that simply isn't on the prefix allowlist — would be reachable anonymously. Walk every route registered by API() with auth enabled and a fresh in-memory database (no users, no keys), and assert each API-prefixed route returns 401 / 404 / 405 to an anonymous request. Public surfaces (/api/auth/*, /api/branding, /api/node/* token-authenticated routes, /healthz, branding asset server, generated-content server, static assets) are explicit allowlist entries with comments justifying them. Build-tagged 'auth' so it runs against the SQLite-backed auth DB (matches the existing auth suite). Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * test(http): pin agent endpoint per-user isolation contract agents.go's getUserID / effectiveUserID / canImpersonateUser / wantsAllUsers helpers are the single trust boundary for cross-user access on agent, agent-jobs, collections, and skills routes. A regression there is the difference between "regular user reads their own data" and "regular user reads anyone's data via ?user_id=victim". Lock in the contract: - effectiveUserID ignores ?user_id= for unauthenticated and RoleUser - effectiveUserID honours it for RoleAdmin and ProviderAgentWorker - wantsAllUsers requires admin AND the literal "true" string - canImpersonateUser is admin OR agent-worker, never plain RoleUser No production change — this commit only adds tests. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(downloader): drop redundant stat in removePartialFile The stat-then-remove pattern is a TOCTOU window and a wasted syscall — os.Remove already returns ErrNotExist for the missing-file case, so trust that and treat it as a no-op. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(http): redact secrets from trace buffer and distribution-token logs The /api/traces buffer captured Authorization, Cookie, Set-Cookie, and API-key headers verbatim from every request when tracing was enabled. The endpoint is admin-only but the buffer is reachable via any heap-style introspection and the captured tokens otherwise outlive the request. Strip those header values at capture time. Body redaction is left to a follow-up — the prompts are usually the operator's own and JSON-walking is invasive. Distribution tokens were also logged in plaintext from core/explorer/discovery.go; logs forward to syslog/journald and outlive the token. Redact those to a short prefix/suffix instead. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(auth): rate-limit OAuth callbacks separately from password endpoints The shared 5/min/IP limit on auth endpoints is right for password-style flows but too tight for OAuth callbacks: corporate SSO funnels many real users through one outbound IP and would trip the limit. Add a separate 60/min/IP limiter for /api/auth/{github,oidc}/callback so callbacks are bounded against floods without breaking shared-IP deployments. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(gallery): verify backend tarball sha256 when set in gallery entry GalleryBackend gained an optional sha256 field; the install path now threads it through to the existing downloader hash-verify (which already streams, verifies, and rolls back on mismatch). Galleries without sha256 keep working; the empty-SHA path still emits the existing "downloading without integrity check" warning. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * test(http): pin CSRF coverage on multipart endpoints The CSRF middleware in app.go is global (e.Use) so it covers every multipart upload route — branding assets, fine-tune datasets, audio transforms, agent collections. Pin that contract: cross-site multipart POSTs are rejected; same-origin / same-site / API-key clients are not. Also pins the SameSite=Lax fallback path the skipper relies on when Sec-Fetch-Site is absent. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(http): XSS hardening — CSP headers, safe href, base-href escape, SVG sandbox Several closely related XSS-prevention changes spanning the SPA shell, the React UI, and the branding asset server: - New SecurityHeaders middleware sets CSP, X-Content-Type-Options, X-Frame-Options, and Referrer-Policy on every response. The CSP keeps script-src permissive because the Vite bundle relies on inline + eval'd scripts; tightening that requires moving to a nonce-based policy. - The <base href> injection in the SPA shell escaped attacker-controllable Host / X-Forwarded-Host headers — a single quote in the host header broke out of the attribute. Pass through SecureBaseHref (html.EscapeString). - Three React sinks rendering untrusted content via dangerouslySetInnerHTML switch to text-node rendering with whiteSpace: pre-wrap: user message bodies in Chat.jsx and AgentChat.jsx, and the agent activity log in AgentChat.jsx. The hand-rolled escape on the agent user-message variant is replaced by the same plain-text path. - New safeHref util collapses non-allowlisted URI schemes (most importantly javascript:) to '#'. Applied to gallery `<a href={url}>` links in Models / Backends / Manage and to canvas artifact links — these come from gallery JSON or assistant tool calls and must be treated as untrusted. - The branding asset server attaches a sandbox CSP plus same-origin CORP to .svg responses. The React UI loads logos via <img>, but the same URL is also reachable via direct navigation; this prevents script execution if a hostile SVG slipped past upload validation. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(http): bound HTTP server with read-header and idle timeouts A net/http server with no timeouts is trivially Slowloris-able and leaks idle keep-alive connections. Set ReadHeaderTimeout (30s) to plug the slow-headers attack and IdleTimeout (120s) to cap keep-alive sockets. ReadTimeout and WriteTimeout stay at 0 because request bodies can be multi-GB model uploads and SSE / chat completions stream for many minutes; operators who need tighter per-request bounds should terminate slow clients at a reverse proxy. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * test(auth): pin PUT /api/auth/profile field-tampering contract The handler uses an explicit local body struct (only name and avatar_url) plus a gorm Updates(map) with a column allowlist, so an attacker posting {"role":"admin","email":"...","password_hash":"..."} can't mass-assign those fields. Lock that down with a regression test so a future "let's just c.Bind(&user)" refactor breaks loudly. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(services): strip directory components from multipart upload filenames UploadDataset and UploadToCollectionForUser took the raw multipart file.Filename and joined it into a destination path. The fine-tune upload was incidentally safe because of a UUID prefix that fused any leading '..' to a literal segment, but the protection is fragile. UploadToCollectionForUser handed the filename to a vendored backend without sanitising at all. Strip to filepath.Base at both boundaries and reject the trivial unsafe values ("", ".", "..", "/"). Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(react-ui): validate persisted MCP server entries on load localStorage is shared across same-origin pages; an XSS that lands once can poison persisted MCP server config to attempt header injection or to feed a non-http URL into the fetch path on subsequent loads. Validate every entry: types must match, URL must parse with http(s) scheme, header keys/values must be control-char-free. Drop anything that doesn't fit. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(http): close X-Forwarded-Prefix open redirect The reverse-proxy support concatenated X-Forwarded-Prefix into the redirect target without validation, so a forged header value of "//evil.com" turned the SPA-shell redirect helper at /, /browse, and /browse/* into a 301 to //evil.com/app. The path-strip middleware had the same shape on its prefix-trailing-slash redirect. Add SafeForwardedPrefix at the middleware boundary: must start with a single '/', no protocol-relative '//' opener, no scheme, no backslash, no control characters. Apply at both consumers; misconfig trips the validator and the header is dropped. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(http): refuse wildcard CORS when LOCALAI_CORS=true with empty allowlist When LOCALAI_CORS=true but LOCALAI_CORS_ALLOW_ORIGINS was empty, Echo's CORSWithConfig saw an empty allow-list and fell back to its default AllowOrigins=["*"]. An operator who flipped the strict-CORS feature flag without populating the list got the opposite of what they asked for. Echo never sets Allow-Credentials: true so this isn't directly exploitable (cookies aren't sent under wildcard CORS), but the misconfiguration trap is worth closing. Skip the registration and warn. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(auth): zxcvbn password strength check with user-acknowledged override The previous policy was len < 8, which let through "Password1" and the rest of the credential-stuffing corpus. LocalAI has no second factor yet, so the bar needs to sit higher. Add ValidatePasswordStrength using github.com/timbutler/zxcvbn (an actively-maintained fork of the trustelem port; v1.0.4, April 2024): - min 12 chars, max 72 (bcrypt's truncation point) - reject NUL bytes (some bcrypt callers truncate at the first NUL) - require zxcvbn score >= 3 ("safely unguessable, ~10^8 guesses to break"); the hint list ["localai", "local-ai", "admin"] penalises passwords built from the app's own branding zxcvbn produces false positives sometimes (a strong-looking password that happens to match a dictionary word) and operators occasionally need to set a known-weak password (kiosk demos, CI rigs). Add an acknowledgement path: PasswordPolicy{AllowWeak: true} skips the entropy check while still enforcing the hard rules. The structured PasswordErrorResponse marks weak-password rejections as Overridable so the UI can surface a "use this anyway" checkbox. Wired through register, self-service password change, and admin password reset on both the server and the React UI. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(react-ui): drop HTML5 minLength on new-password inputs minLength={12} on the new-password input let the browser block the form submit silently before any JS or network call ran. The browser focused the field, showed a brief native tooltip, and that was that — no toast, no fetch, no clue. Reproducible by typing fewer than 12 chars on the second password change of a session. The JS-level length check in handleSubmit already shows a toast and the server rejects with a structured error, so the HTML5 attribute was redundant defence anyway. Drop it. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(react-ui): bundle Geist fonts locally instead of fetching from Google The new CSP correctly refused to apply styles from fonts.googleapis.com because style-src is locked to 'self' and 'unsafe-inline'. Loosening the CSP would defeat its purpose; the right fix is to stop reaching out to a third-party CDN for fonts on every page load. Add @fontsource-variable/geist and @fontsource-variable/geist-mono as npm deps and import them once at boot. Drop the <link rel="preconnect"> and external stylesheet from index.html. Side benefit: no third-party tracking via Referer / IP on every UI load, no failure mode when offline / behind a captive portal. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * fix(react-ui): refresh i18n strings to reflect 12-char password minimum The translations still said "at least 8 characters" everywhere — the client-side toast on a too-short password change told the user the wrong floor. Update tooShort and newPasswordPlaceholder / newPasswordDescription across all five locales (en, es, it, de, zh-CN) to match the real ValidatePasswordStrength rule. Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> * feat(auth): make password length-floor overridable like the entropy check The 12-char minimum was a policy choice, not a technical invariant — only "non-empty", "<= 72 bytes", and "no NUL bytes" are real bcrypt constraints. Treating length-12 as a hard rule was inconsistent with the entropy check (already overridable) and friction for use cases where the account is just a name on a session, not a security boundary (single-user kiosk, CI rig, lab demo). Restructure ValidatePasswordStrength: - Hard rules (always enforced): non-empty, <= MaxPasswordLength, no NUL byte - Policy rules (skipped when AllowWeak=true): length >= 12, zxcvbn score >= 3 PasswordError now marks password_too_short as Overridable too. The React forms generalised from `error_code === 'password_too_weak'` to `overridable === true`, and the JS-side preflight length checks were removed (server is source of truth, returns the same checkbox flow). Assisted-by: Claude:claude-opus-4-7 [Claude Code] Signed-off-by: Richard Palethorpe <io@richiejp.com> --------- Signed-off-by: Richard Palethorpe <io@richiejp.com>
478 lines
23 KiB
Modula-2
478 lines
23 KiB
Modula-2
module github.com/mudler/LocalAI
|
|
|
|
go 1.26.0
|
|
|
|
require (
|
|
dario.cat/mergo v1.0.2
|
|
fyne.io/fyne/v2 v2.7.3
|
|
github.com/Masterminds/sprig/v3 v3.3.0
|
|
github.com/alecthomas/kong v1.14.0
|
|
github.com/anthropics/anthropic-sdk-go v1.27.0
|
|
github.com/aws/aws-sdk-go-v2 v1.41.6
|
|
github.com/aws/aws-sdk-go-v2/config v1.32.16
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.15
|
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1
|
|
github.com/charmbracelet/glamour v1.0.0
|
|
github.com/containerd/containerd v1.7.31
|
|
github.com/coreos/go-oidc/v3 v3.18.0
|
|
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8
|
|
github.com/ebitengine/purego v0.10.0
|
|
github.com/emirpasic/gods/v2 v2.0.0-alpha
|
|
github.com/fsnotify/fsnotify v1.9.0
|
|
github.com/go-audio/wav v1.1.0
|
|
github.com/go-skynet/go-llama.cpp v0.0.0-20240314183750-6a8041ef6b46
|
|
github.com/gofrs/flock v0.13.0
|
|
github.com/google/go-containerregistry v0.21.5
|
|
github.com/google/uuid v1.6.0
|
|
github.com/gpustack/gguf-parser-go v0.24.0
|
|
github.com/hpcloud/tail v1.0.0
|
|
github.com/ipfs/go-log v1.0.5
|
|
github.com/jaypipes/ghw v0.24.0
|
|
github.com/joho/godotenv v1.5.1
|
|
github.com/klauspost/cpuid/v2 v2.3.0
|
|
github.com/labstack/echo/v4 v4.15.1
|
|
github.com/libp2p/go-libp2p v0.48.0
|
|
github.com/lithammer/fuzzysearch v1.1.8
|
|
github.com/mholt/archiver/v3 v3.5.1
|
|
github.com/microcosm-cc/bluemonday v1.0.27
|
|
github.com/modelcontextprotocol/go-sdk v1.5.0
|
|
github.com/mudler/cogito v0.9.5-0.20260315222927-63abdec7189b
|
|
github.com/mudler/edgevpn v0.31.1
|
|
github.com/mudler/go-processmanager v0.1.1
|
|
github.com/mudler/memory v0.0.0-20260406210934-424c1ecf2cf8
|
|
github.com/mudler/xlog v0.0.6
|
|
github.com/nats-io/nats.go v1.50.0
|
|
github.com/ollama/ollama v0.20.4
|
|
github.com/onsi/ginkgo/v2 v2.28.2
|
|
github.com/onsi/gomega v1.39.1
|
|
github.com/openai/openai-go/v3 v3.26.0
|
|
github.com/otiai10/copy v1.14.1
|
|
github.com/otiai10/openaigo v1.7.0
|
|
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5
|
|
github.com/prometheus/client_golang v1.23.2
|
|
github.com/robfig/cron/v3 v3.0.1
|
|
github.com/russross/blackfriday v1.6.0
|
|
github.com/sashabaranov/go-openai v1.41.2
|
|
github.com/schollz/progressbar/v3 v3.19.0
|
|
github.com/shirou/gopsutil/v3 v3.24.5
|
|
github.com/streamer45/silero-vad-go v0.2.1
|
|
github.com/swaggo/echo-swagger v1.5.2
|
|
github.com/swaggo/swag v1.16.6
|
|
github.com/testcontainers/testcontainers-go v0.42.0
|
|
github.com/testcontainers/testcontainers-go/modules/nats v0.42.0
|
|
github.com/testcontainers/testcontainers-go/modules/postgres v0.42.0
|
|
github.com/timbutler/zxcvbn v1.0.4
|
|
go.opentelemetry.io/otel v1.43.0
|
|
go.opentelemetry.io/otel/exporters/prometheus v0.65.0
|
|
go.opentelemetry.io/otel/metric v1.43.0
|
|
go.opentelemetry.io/otel/sdk/metric v1.43.0
|
|
google.golang.org/grpc v1.80.0
|
|
google.golang.org/protobuf v1.36.11
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
gorm.io/driver/postgres v1.6.0
|
|
gorm.io/driver/sqlite v1.6.0
|
|
gorm.io/gorm v1.31.1
|
|
oras.land/oras-go/v2 v2.6.0
|
|
)
|
|
|
|
require (
|
|
filippo.io/bigmod v0.1.1-0.20260103110540-f8a47775ebe5 // indirect
|
|
filippo.io/keygen v0.0.0-20260114151900-8e2790ea4c5b // indirect
|
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 // indirect
|
|
github.com/aws/smithy-go v1.25.0 // indirect
|
|
github.com/bahlo/generic-list-go v0.2.0 // indirect
|
|
github.com/buger/jsonparser v1.1.2 // indirect
|
|
github.com/chasefleming/elem-go v0.30.0 // indirect
|
|
github.com/dave-gray101/v2keyauth v0.0.0-20240624150259-c45d584d25e2 // indirect
|
|
github.com/dunglas/httpsfv v1.1.0 // indirect
|
|
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
|
|
github.com/gofiber/template v1.8.3 // indirect
|
|
github.com/gofiber/template/html/v2 v2.1.3 // indirect
|
|
github.com/gofiber/utils v1.1.0 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
github.com/jinzhu/now v1.1.5 // indirect
|
|
github.com/jolestar/go-commons-pool/v2 v2.1.2 // indirect
|
|
github.com/klippa-app/go-pdfium v1.19.2 // indirect
|
|
github.com/mattn/go-sqlite3 v1.14.24 // indirect
|
|
github.com/moby/moby/api v1.54.1 // indirect
|
|
github.com/moby/moby/client v0.4.0 // indirect
|
|
github.com/nats-io/nkeys v0.4.15 // indirect
|
|
github.com/nats-io/nuid v1.0.1 // indirect
|
|
github.com/spf13/cobra v1.10.2 // indirect
|
|
github.com/spf13/pflag v1.0.10 // indirect
|
|
github.com/stretchr/testify v1.11.1 // indirect
|
|
github.com/sv-tools/openapi v0.2.1 // indirect
|
|
github.com/swaggo/swag/v2 v2.0.0-rc4 // indirect
|
|
github.com/tetratelabs/wazero v1.11.0 // indirect
|
|
github.com/tmc/langchaingo v0.1.14 // indirect
|
|
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
|
|
sigs.k8s.io/yaml v1.6.0 // indirect
|
|
)
|
|
|
|
require (
|
|
github.com/JohannesKaufmann/dom v0.2.0 // indirect
|
|
github.com/JohannesKaufmann/html-to-markdown/v2 v2.4.0 // indirect
|
|
github.com/ProtonMail/go-crypto v1.1.6 // indirect
|
|
github.com/PuerkitoBio/goquery v1.10.3 // indirect
|
|
github.com/RoaringBitmap/roaring/v2 v2.4.5 // indirect
|
|
github.com/andybalholm/cascadia v1.3.3 // indirect
|
|
github.com/antchfx/htmlquery v1.3.4 // indirect
|
|
github.com/antchfx/xmlquery v1.4.4 // indirect
|
|
github.com/antchfx/xpath v1.3.6 // indirect
|
|
github.com/bits-and-blooms/bitset v1.24.0 // indirect
|
|
github.com/blevesearch/bleve/v2 v2.5.7 // indirect
|
|
github.com/blevesearch/bleve_index_api v1.2.11 // indirect
|
|
github.com/blevesearch/geo v0.2.4 // indirect
|
|
github.com/blevesearch/go-faiss v1.0.26 // indirect
|
|
github.com/blevesearch/go-porterstemmer v1.0.3 // indirect
|
|
github.com/blevesearch/gtreap v0.1.1 // indirect
|
|
github.com/blevesearch/mmap-go v1.0.4 // indirect
|
|
github.com/blevesearch/scorch_segment_api/v2 v2.3.13 // indirect
|
|
github.com/blevesearch/segment v0.9.1 // indirect
|
|
github.com/blevesearch/snowballstem v0.9.0 // indirect
|
|
github.com/blevesearch/upsidedown_store_api v1.0.2 // indirect
|
|
github.com/blevesearch/vellum v1.1.0 // indirect
|
|
github.com/blevesearch/zapx/v11 v11.4.2 // indirect
|
|
github.com/blevesearch/zapx/v12 v12.4.2 // indirect
|
|
github.com/blevesearch/zapx/v13 v13.4.2 // indirect
|
|
github.com/blevesearch/zapx/v14 v14.4.2 // indirect
|
|
github.com/blevesearch/zapx/v15 v15.4.2 // indirect
|
|
github.com/blevesearch/zapx/v16 v16.2.8 // indirect
|
|
github.com/bwmarrin/discordgo v0.29.0 // indirect
|
|
github.com/cloudflare/circl v1.6.3 // indirect
|
|
github.com/cyphar/filepath-securejoin v0.5.1 // indirect
|
|
github.com/emersion/go-imap/v2 v2.0.0-beta.5 // indirect
|
|
github.com/emersion/go-message v0.18.2 // indirect
|
|
github.com/emersion/go-sasl v0.0.0-20241020182733-b788ff22d5a6 // indirect
|
|
github.com/emersion/go-smtp v0.24.0 // indirect
|
|
github.com/emirpasic/gods v1.18.1 // indirect
|
|
github.com/eritikass/githubmarkdownconvertergo v0.1.10 // indirect
|
|
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
|
|
github.com/go-git/go-billy/v5 v5.8.0 // indirect
|
|
github.com/go-git/go-git/v5 v5.18.0 // indirect
|
|
github.com/go-telegram/bot v1.17.0 // indirect
|
|
github.com/gobwas/glob v0.2.3 // indirect
|
|
github.com/gocolly/colly v1.2.0 // indirect
|
|
github.com/gofiber/fiber/v2 v2.52.13 // indirect
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
|
github.com/gomarkdown/markdown v0.0.0-20250311123330-531bef5e742b // indirect
|
|
github.com/google/go-github/v69 v69.2.0 // indirect
|
|
github.com/google/go-querystring v1.1.0 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/pgx/v5 v5.9.2 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
|
github.com/jung-kurt/gofpdf v1.16.2 // indirect
|
|
github.com/kennygrant/sanitize v1.2.4 // indirect
|
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
|
github.com/labstack/gommon v0.4.2 // indirect
|
|
github.com/mschoch/smat v0.2.0 // indirect
|
|
github.com/mudler/LocalAGI v0.0.0-20260508125235-37810d918a87
|
|
github.com/mudler/localrecall v0.6.1-0.20260507074622-a7724fef6f81 // indirect
|
|
github.com/mudler/skillserver v0.0.6
|
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
|
github.com/oxffaa/gopher-parse-sitemap v0.0.0-20191021113419-005d2eb1def4 // indirect
|
|
github.com/philippgille/chromem-go v0.7.0 // indirect
|
|
github.com/pion/transport/v4 v4.0.1 // indirect
|
|
github.com/pjbgf/sha1cd v0.3.2 // indirect
|
|
github.com/rs/zerolog v1.31.0 // indirect
|
|
github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect
|
|
github.com/segmentio/asm v1.1.3 // indirect
|
|
github.com/segmentio/encoding v0.5.4 // indirect
|
|
github.com/sergi/go-diff v1.4.0 // indirect
|
|
github.com/skeema/knownhosts v1.3.1 // indirect
|
|
github.com/slack-go/slack v0.17.3 // indirect
|
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
|
github.com/swaggo/files/v2 v2.0.2 // indirect
|
|
github.com/temoto/robotstxt v1.1.2 // indirect
|
|
github.com/thoj/go-ircevent v0.0.0-20210723090443-73e444401d64 // indirect
|
|
github.com/tidwall/gjson v1.18.0 // indirect
|
|
github.com/tidwall/match v1.2.0 // indirect
|
|
github.com/tidwall/pretty v1.2.1 // indirect
|
|
github.com/tidwall/sjson v1.2.5 // indirect
|
|
github.com/traefik/yaegi v0.16.1 // indirect
|
|
github.com/valyala/fasthttp v1.68.0 // indirect
|
|
github.com/valyala/fasttemplate v1.2.2 // indirect
|
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
|
go.etcd.io/bbolt v1.4.3 // indirect
|
|
go.mau.fi/util v0.3.0 // indirect
|
|
go.starlark.net v0.0.0-20250417143717-f57e51f710eb // indirect
|
|
google.golang.org/appengine v1.6.8 // indirect
|
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
jaytaylor.com/html2text v0.0.0-20230321000545-74c2419ad056 // indirect
|
|
maunium.net/go/maulogger/v2 v2.4.1 // indirect
|
|
maunium.net/go/mautrix v0.17.0 // indirect
|
|
mvdan.cc/xurls/v2 v2.6.0 // indirect
|
|
)
|
|
|
|
require (
|
|
fyne.io/systray v1.12.0 // indirect
|
|
github.com/BurntSushi/toml v1.5.0 // indirect
|
|
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
|
|
github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 // indirect
|
|
github.com/charmbracelet/x/ansi v0.10.2 // indirect
|
|
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
|
|
github.com/charmbracelet/x/exp/slice v0.0.0-20250327172914-2fdc97757edf // indirect
|
|
github.com/charmbracelet/x/term v0.2.1 // indirect
|
|
github.com/containerd/errdefs/pkg v0.3.0 // indirect
|
|
github.com/containerd/platforms v0.2.1 // indirect
|
|
github.com/cpuguy83/dockercfg v0.3.2 // indirect
|
|
github.com/distribution/reference v0.6.0 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/fredbi/uri v1.1.1 // indirect
|
|
github.com/fyne-io/gl-js v0.2.0 // indirect
|
|
github.com/fyne-io/glfw-js v0.3.0 // indirect
|
|
github.com/fyne-io/image v0.1.1 // indirect
|
|
github.com/fyne-io/oksvg v0.2.0 // indirect
|
|
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 // indirect
|
|
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a // indirect
|
|
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
|
|
github.com/go-text/render v0.2.0 // indirect
|
|
github.com/go-text/typesetting v0.3.3 // indirect
|
|
github.com/godbus/dbus/v5 v5.1.0 // indirect
|
|
github.com/google/jsonschema-go v0.4.2 // indirect
|
|
github.com/hack-pad/go-indexeddb v0.3.2 // indirect
|
|
github.com/hack-pad/safejs v0.1.0 // indirect
|
|
github.com/jeandeaual/go-locale v0.0.0-20250612000132-0ef82f21eade // indirect
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 // indirect
|
|
github.com/libp2p/go-yamux/v5 v5.0.1 // indirect
|
|
github.com/magiconair/properties v1.8.10 // indirect
|
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
|
github.com/moby/go-archive v0.2.0 // indirect
|
|
github.com/moby/patternmatcher v0.6.1 // indirect
|
|
github.com/moby/sys/user v0.4.0 // indirect
|
|
github.com/moby/sys/userns v0.1.0 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
|
|
github.com/nicksnyder/go-i18n/v2 v2.5.1 // indirect
|
|
github.com/otiai10/mint v1.6.3 // indirect
|
|
github.com/pion/datachannel v1.6.0 // indirect
|
|
github.com/pion/dtls/v3 v3.1.2 // indirect
|
|
github.com/pion/ice/v4 v4.2.2 // indirect
|
|
github.com/pion/interceptor v0.1.44 // indirect
|
|
github.com/pion/logging v0.2.4 // indirect
|
|
github.com/pion/mdns/v2 v2.1.0 // indirect
|
|
github.com/pion/randutil v0.1.0 // indirect
|
|
github.com/pion/rtcp v1.2.16 // indirect
|
|
github.com/pion/rtp v1.10.1
|
|
github.com/pion/sctp v1.9.4 // indirect
|
|
github.com/pion/sdp/v3 v3.0.18 // indirect
|
|
github.com/pion/srtp/v3 v3.0.10 // indirect
|
|
github.com/pion/stun/v3 v3.1.1 // indirect
|
|
github.com/pion/turn/v4 v4.1.4 // indirect
|
|
github.com/pion/webrtc/v4 v4.2.11
|
|
github.com/prometheus/otlptranslator v1.0.0 // indirect
|
|
github.com/rymdport/portal v0.4.2 // indirect
|
|
github.com/shirou/gopsutil/v4 v4.26.3 // indirect
|
|
github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c // indirect
|
|
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect
|
|
github.com/wlynxg/anet v0.0.5 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
|
|
go.uber.org/mock v0.5.2 // indirect
|
|
go.yaml.in/yaml/v2 v2.4.4
|
|
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
|
golang.org/x/image v0.38.0 // indirect
|
|
golang.org/x/net v0.53.0 // indirect; indirect (for websocket)
|
|
golang.org/x/oauth2 v0.36.0
|
|
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa // indirect
|
|
golang.org/x/time v0.14.0 // indirect
|
|
)
|
|
|
|
require (
|
|
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
|
|
github.com/KyleBanks/depth v1.2.1 // indirect
|
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
|
github.com/Masterminds/semver/v3 v3.4.0 // indirect
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
|
github.com/Microsoft/hcsshim v0.11.7 // indirect
|
|
github.com/alecthomas/chroma/v2 v2.20.0 // indirect
|
|
github.com/andybalholm/brotli v1.2.0 // indirect
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
github.com/benbjohnson/clock v1.3.5 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/c-robinson/iplib v1.0.8 // indirect
|
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/containerd/cgroups v1.1.0 // indirect
|
|
github.com/containerd/continuity v0.4.4 // indirect
|
|
github.com/containerd/errdefs v1.0.0 // indirect
|
|
github.com/containerd/log v0.1.0 // indirect
|
|
github.com/containerd/stargz-snapshotter/estargz v0.18.2 // indirect
|
|
github.com/creachadair/otp v0.5.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
|
|
github.com/dlclark/regexp2 v1.11.5 // indirect
|
|
github.com/docker/cli v29.4.0+incompatible // indirect
|
|
github.com/docker/docker v28.5.2+incompatible
|
|
github.com/docker/docker-credential-helpers v0.9.3 // indirect
|
|
github.com/docker/go-connections v0.6.0 // indirect
|
|
github.com/docker/go-units v0.5.0 // indirect
|
|
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect
|
|
github.com/flynn/noise v1.1.0 // indirect
|
|
github.com/go-audio/audio v1.0.0
|
|
github.com/go-audio/riff v1.0.0 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
|
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
|
github.com/go-openapi/spec v0.21.0 // indirect
|
|
github.com/go-openapi/swag v0.23.0 // indirect
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
|
github.com/golang/snappy v0.0.4 // indirect
|
|
github.com/google/btree v1.1.3 // indirect
|
|
github.com/google/go-cmp v0.7.0 // indirect
|
|
github.com/google/gopacket v1.1.19 // indirect
|
|
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 // indirect
|
|
github.com/gorilla/css v1.0.1 // indirect
|
|
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
|
|
github.com/hashicorp/golang-lru v1.0.2 // indirect
|
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
|
github.com/henvic/httpretty v0.1.4 // indirect
|
|
github.com/huandu/xstrings v1.5.0 // indirect
|
|
github.com/huin/goupnp v1.3.0 // indirect
|
|
github.com/ipfs/boxo v0.30.0 // indirect
|
|
github.com/ipfs/go-cid v0.6.1 // indirect
|
|
github.com/ipfs/go-datastore v0.8.2 // indirect
|
|
github.com/ipfs/go-log/v2 v2.6.0 // indirect
|
|
github.com/ipld/go-ipld-prime v0.23.0 // indirect
|
|
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
|
github.com/jaypipes/pcidb v1.1.1 // indirect
|
|
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
|
|
github.com/josharian/intern v1.0.0 // indirect
|
|
github.com/klauspost/compress v1.18.5 // indirect
|
|
github.com/klauspost/pgzip v1.2.5 // indirect
|
|
github.com/koron/go-ssdp v0.0.6 // indirect
|
|
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
|
|
github.com/libp2p/go-cidranger v1.1.0 // indirect
|
|
github.com/libp2p/go-flow-metrics v0.2.0 // indirect
|
|
github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
|
|
github.com/libp2p/go-libp2p-kad-dht v0.33.1 // indirect
|
|
github.com/libp2p/go-libp2p-kbucket v0.7.0 // indirect
|
|
github.com/libp2p/go-libp2p-pubsub v0.14.2 // indirect
|
|
github.com/libp2p/go-libp2p-record v0.3.1 // indirect
|
|
github.com/libp2p/go-libp2p-routing-helpers v0.7.5 // indirect
|
|
github.com/libp2p/go-msgio v0.3.0 // indirect
|
|
github.com/libp2p/go-netroute v0.4.0 // indirect
|
|
github.com/libp2p/go-reuseport v0.4.0 // indirect
|
|
github.com/libp2p/zeroconf/v2 v2.2.0 // indirect
|
|
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
|
|
github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 // indirect
|
|
github.com/mailru/easyjson v0.7.7 // indirect
|
|
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-runewidth v0.0.17 // indirect
|
|
github.com/miekg/dns v1.1.66 // indirect
|
|
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
|
|
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
|
|
github.com/minio/sha256-simd v1.0.1 // indirect
|
|
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
|
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
|
github.com/moby/sys/sequential v0.6.0 // indirect
|
|
github.com/moby/term v0.5.2 // indirect
|
|
github.com/mr-tron/base58 v1.3.0 // indirect
|
|
github.com/mudler/go-piper v0.0.0-20241023091659-2494246fd9fc
|
|
github.com/mudler/water v0.0.0-20250808092830-dd90dcf09025 // indirect
|
|
github.com/muesli/reflow v0.3.0 // indirect
|
|
github.com/muesli/termenv v0.16.0 // indirect
|
|
github.com/multiformats/go-base32 v0.1.0 // indirect
|
|
github.com/multiformats/go-base36 v0.2.0 // indirect
|
|
github.com/multiformats/go-multiaddr v0.16.1
|
|
github.com/multiformats/go-multiaddr-dns v0.4.1 // indirect
|
|
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
|
|
github.com/multiformats/go-multibase v0.3.0 // indirect
|
|
github.com/multiformats/go-multicodec v0.10.0 // indirect
|
|
github.com/multiformats/go-multihash v0.2.3 // indirect
|
|
github.com/multiformats/go-multistream v0.6.1 // indirect
|
|
github.com/multiformats/go-varint v0.1.0 // indirect
|
|
github.com/nwaples/rardecode v1.1.0 // indirect
|
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
|
github.com/opencontainers/image-spec v1.1.1
|
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
|
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
|
|
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
|
|
github.com/pierrec/lz4/v4 v4.1.8 // indirect
|
|
github.com/pkg/errors v0.9.1
|
|
github.com/pkoukk/tiktoken-go v0.1.7 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/polydawn/refmt v0.89.1-0.20231129105047-37766d95467a // indirect
|
|
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.67.5 // indirect
|
|
github.com/prometheus/procfs v0.20.1 // indirect
|
|
github.com/quic-go/qpack v0.6.0 // indirect
|
|
github.com/quic-go/quic-go v0.59.0 // indirect
|
|
github.com/quic-go/webtransport-go v0.10.0 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/shoenig/go-m1cpu v0.1.6 // indirect
|
|
github.com/shopspring/decimal v1.4.0 // indirect
|
|
github.com/sirupsen/logrus v1.9.4 // indirect
|
|
github.com/smallnest/ringbuffer v0.0.0-20241116012123-461381446e3d // indirect
|
|
github.com/songgao/packets v0.0.0-20160404182456-549a10cd4091 // indirect
|
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
|
github.com/spf13/cast v1.7.0 // indirect
|
|
github.com/tklauser/go-sysconf v0.3.16 // indirect
|
|
github.com/tklauser/numcpus v0.11.0 // indirect
|
|
github.com/ulikunitz/xz v0.5.14 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/vbatts/tar-split v0.12.2 // indirect
|
|
github.com/vishvananda/netlink v1.3.0 // indirect
|
|
github.com/vishvananda/netns v0.0.5 // indirect
|
|
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect
|
|
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
|
|
github.com/yuin/goldmark v1.7.13 // indirect
|
|
github.com/yuin/goldmark-emoji v1.0.6 // indirect
|
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
|
go.opencensus.io v0.24.0 // indirect
|
|
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.43.0 // indirect
|
|
go.uber.org/dig v1.19.0 // indirect
|
|
go.uber.org/fx v1.24.0 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
go.uber.org/zap v1.27.0 // indirect
|
|
golang.org/x/crypto v0.50.0
|
|
golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 // indirect
|
|
golang.org/x/mod v0.35.0 // indirect
|
|
golang.org/x/sync v0.20.0
|
|
golang.org/x/sys v0.43.0 // indirect
|
|
golang.org/x/term v0.42.0 // indirect
|
|
golang.org/x/text v0.36.0 // indirect
|
|
golang.org/x/tools v0.44.0 // indirect
|
|
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
|
|
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb // indirect
|
|
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
|
|
gonum.org/v1/gonum v0.17.0 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 // indirect
|
|
gopkg.in/fsnotify.v1 v1.4.7 // indirect
|
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
|
howett.net/plist v1.0.2-0.20250314012144-ee69052608d9 // indirect
|
|
lukechampine.com/blake3 v1.4.1 // indirect
|
|
)
|