From 19f689797bb60b6bed61181142b9045154c76e4e Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 11:31:37 +0300 Subject: [PATCH 01/27] feat: add RuntimeClient, RuntimeProvider, and ConnectRPC proto gen (Phase 1) Introduce the foundation for replacing the global mutable `runtime` store with scoped Svelte context. - Generate ConnectRPC TypeScript service descriptors for RuntimeService, QueryService, and ConnectorService via buf (new buf.gen.runtime.yaml) - Add RuntimeClient class that encapsulates transport, JWT lifecycle, and lazy service client creation - Add RuntimeProvider component that creates a RuntimeClient, sets it in Svelte context, and bridges to the global store for unmigrated consumers - Add useRuntimeClient() context helper - Wire RuntimeProvider into web-admin project layout with {#key} on host::instanceId for correct re-mounting on project navigation - Wire RuntimeProvider into web-local root layout - Extract JWT expiry constants to shared constants.ts --- Makefile | 1 + proto/buf.gen.runtime.yaml | 16 + .../[organization]/[project]/+layout.svelte | 42 +- .../proto/gen/rill/runtime/v1/api_connect.ts | 610 ++++++++++++++++++ .../gen/rill/runtime/v1/connectors_connect.ts | 94 +++ .../gen/rill/runtime/v1/queries_connect.ts | 405 ++++++++++++ web-common/src/runtime-client/constants.ts | 6 + web-common/src/runtime-client/http-client.ts | 9 +- .../runtime-client/v2/RuntimeProvider.svelte | 37 ++ web-common/src/runtime-client/v2/context.ts | 19 + web-common/src/runtime-client/v2/index.ts | 2 + .../src/runtime-client/v2/runtime-client.ts | 115 ++++ web-local/src/routes/+layout.svelte | 29 +- 13 files changed, 1353 insertions(+), 32 deletions(-) create mode 100644 proto/buf.gen.runtime.yaml create mode 100644 web-common/src/proto/gen/rill/runtime/v1/api_connect.ts create mode 100644 web-common/src/proto/gen/rill/runtime/v1/connectors_connect.ts create mode 100644 web-common/src/proto/gen/rill/runtime/v1/queries_connect.ts create mode 100644 web-common/src/runtime-client/v2/RuntimeProvider.svelte create mode 100644 web-common/src/runtime-client/v2/context.ts create mode 100644 web-common/src/runtime-client/v2/index.ts create mode 100644 web-common/src/runtime-client/v2/runtime-client.ts diff --git a/Makefile b/Makefile index d268f0d5e34..0e046eba401 100644 --- a/Makefile +++ b/Makefile @@ -56,6 +56,7 @@ proto.generate: cd proto && buf generate --exclude-path rill/ui cd proto && buf generate --template buf.gen.openapi-admin.yaml --path rill/admin cd proto && buf generate --template buf.gen.openapi-runtime.yaml --path rill/runtime + cd proto && buf generate --template buf.gen.runtime.yaml --path rill/runtime cd proto && buf generate --template buf.gen.local.yaml --path rill/local cd proto && buf generate --template buf.gen.ui.yaml go run -ldflags="-X main.Version=$(shell git describe --tags $(shell git rev-list --tags --max-count=1))" \ diff --git a/proto/buf.gen.runtime.yaml b/proto/buf.gen.runtime.yaml new file mode 100644 index 00000000000..fe6bc5ba89b --- /dev/null +++ b/proto/buf.gen.runtime.yaml @@ -0,0 +1,16 @@ +version: v2 +managed: + enabled: true + override: + - file_option: go_package_prefix + value: github.com/rilldata/rill/proto/gen + disable: + - module: buf.build/googleapis/googleapis + file_option: go_package_prefix + - module: buf.build/envoyproxy/protoc-gen-validate + file_option: go_package_prefix +plugins: + - remote: buf.build/connectrpc/es:v1.4.0 + out: ../web-common/src/proto/gen + opt: + - target=ts diff --git a/web-admin/src/routes/[organization]/[project]/+layout.svelte b/web-admin/src/routes/[organization]/[project]/+layout.svelte index c983cb6b533..46f07e16c6e 100644 --- a/web-admin/src/routes/[organization]/[project]/+layout.svelte +++ b/web-admin/src/routes/[organization]/[project]/+layout.svelte @@ -51,10 +51,10 @@ import { viewAsUserStore } from "@rilldata/web-admin/features/view-as-user/viewAsUserStore"; import ErrorPage from "@rilldata/web-common/components/ErrorPage.svelte"; import { metricsService } from "@rilldata/web-common/metrics/initMetrics"; - import RuntimeProvider from "@rilldata/web-common/runtime-client/RuntimeProvider.svelte"; + import RuntimeProvider from "@rilldata/web-common/runtime-client/v2/RuntimeProvider.svelte"; import { RUNTIME_ACCESS_TOKEN_DEFAULT_TTL } from "@rilldata/web-common/runtime-client/constants"; import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; - import type { AuthContext } from "@rilldata/web-common/runtime-client/runtime-store"; + import type { AuthContext } from "@rilldata/web-common/runtime-client/v2/runtime-client"; import type { CreateQueryOptions } from "@tanstack/svelte-query"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient.ts"; import { getRuntimeServiceListResourcesQueryKey } from "@rilldata/web-common/runtime-client"; @@ -205,6 +205,20 @@ : "user" ) as AuthContext; + // Derive effective runtime connection props + $: effectiveHost = + mockedUserId && mockedUserDeploymentCredentials + ? mockedUserDeploymentCredentials.runtimeHost + : projectData?.deployment?.runtimeHost; + $: effectiveInstanceId = + mockedUserId && mockedUserDeploymentCredentials + ? mockedUserDeploymentCredentials.instanceId + : projectData?.deployment?.runtimeInstanceId; + $: effectiveJwt = + mockedUserId && mockedUserDeploymentCredentials + ? mockedUserDeploymentCredentials.accessToken + : projectData?.jwt; + // Load telemetry client with relevant context $: if (project && $user.data?.user?.id) { metricsService?.loadCloudFields({ @@ -247,19 +261,15 @@ : "There was an error deploying your project. Please contact support."} /> {:else if isProjectAvailable} - - - + {#key `${effectiveHost}::${effectiveInstanceId}`} + + + + {/key} {/if} {/if} diff --git a/web-common/src/proto/gen/rill/runtime/v1/api_connect.ts b/web-common/src/proto/gen/rill/runtime/v1/api_connect.ts new file mode 100644 index 00000000000..204bcbbd6f9 --- /dev/null +++ b/web-common/src/proto/gen/rill/runtime/v1/api_connect.ts @@ -0,0 +1,610 @@ +// @generated by protoc-gen-connect-es v1.4.0 with parameter "target=ts" +// @generated from file rill/runtime/v1/api.proto (package rill.runtime.v1, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { AnalyzeConnectorsRequest, AnalyzeConnectorsResponse, AnalyzeVariablesRequest, AnalyzeVariablesResponse, CompleteRequest, CompleteResponse, CompleteStreamingRequest, CompleteStreamingResponse, CreateDirectoryRequest, CreateDirectoryResponse, CreateInstanceRequest, CreateInstanceResponse, CreateTriggerRequest, CreateTriggerResponse, DeleteFileRequest, DeleteFileResponse, DeleteInstanceRequest, DeleteInstanceResponse, EditInstanceRequest, EditInstanceResponse, ForkConversationRequest, ForkConversationResponse, GenerateCanvasFileRequest, GenerateCanvasFileResponse, GenerateMetricsViewFileRequest, GenerateMetricsViewFileResponse, GenerateRendererRequest, GenerateRendererResponse, GenerateResolverRequest, GenerateResolverResponse, GetConversationRequest, GetConversationResponse, GetExploreRequest, GetExploreResponse, GetFileRequest, GetFileResponse, GetInstanceRequest, GetInstanceResponse, GetLogsRequest, GetLogsResponse, GetModelPartitionsRequest, GetModelPartitionsResponse, GetResourceRequest, GetResourceResponse, GitCommitRequest, GitCommitResponse, GitMergeToBranchRequest, GitMergeToBranchResponse, GitPullRequest, GitPullResponse, GitPushRequest, GitPushResponse, GitStatusRequest, GitStatusResponse, GitSwitchBranchRequest, GitSwitchBranchResponse, HealthRequest, HealthResponse, InstanceHealthRequest, InstanceHealthResponse, IssueDevJWTRequest, IssueDevJWTResponse, ListConnectorDriversRequest, ListConnectorDriversResponse, ListConversationsRequest, ListConversationsResponse, ListExamplesRequest, ListExamplesResponse, ListFilesRequest, ListFilesResponse, ListGitBranchesRequest, ListGitBranchesResponse, ListGitCommitsRequest, ListGitCommitsResponse, ListInstancesRequest, ListInstancesResponse, ListNotifierConnectorsRequest, ListNotifierConnectorsResponse, ListResourcesRequest, ListResourcesResponse, ListToolsRequest, ListToolsResponse, PingRequest, PingResponse, PutFileRequest, PutFileResponse, QueryResolverRequest, QueryResolverResponse, ReloadConfigRequest, ReloadConfigResponse, RenameFileRequest, RenameFileResponse, RestoreGitCommitRequest, RestoreGitCommitResponse, ShareConversationRequest, ShareConversationResponse, UnpackEmptyRequest, UnpackEmptyResponse, UnpackExampleRequest, UnpackExampleResponse, WatchFilesRequest, WatchFilesResponse, WatchLogsRequest, WatchLogsResponse, WatchResourcesRequest, WatchResourcesResponse } from "./api_pb.js"; +import { MethodKind } from "@bufbuild/protobuf"; + +/** + * RuntimeService is a data infrastructure proxy and orchestrator based on Rill SQL. + * It has a concept of instances, which are fully isolated data projects, enabling optional multi-tenancy. + * + * @generated from service rill.runtime.v1.RuntimeService + */ +export const RuntimeService = { + typeName: "rill.runtime.v1.RuntimeService", + methods: { + /** + * Ping returns information about the runtime + * + * @generated from rpc rill.runtime.v1.RuntimeService.Ping + */ + ping: { + name: "Ping", + I: PingRequest, + O: PingResponse, + kind: MethodKind.Unary, + }, + /** + * Health runs a health check on the runtime. + * + * @generated from rpc rill.runtime.v1.RuntimeService.Health + */ + health: { + name: "Health", + I: HealthRequest, + O: HealthResponse, + kind: MethodKind.Unary, + }, + /** + * InstanceHealth runs a health check on a specific instance. + * + * @generated from rpc rill.runtime.v1.RuntimeService.InstanceHealth + */ + instanceHealth: { + name: "InstanceHealth", + I: InstanceHealthRequest, + O: InstanceHealthResponse, + kind: MethodKind.Unary, + }, + /** + * ListInstances lists all the instances currently managed by the runtime + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListInstances + */ + listInstances: { + name: "ListInstances", + I: ListInstancesRequest, + O: ListInstancesResponse, + kind: MethodKind.Unary, + }, + /** + * GetInstance returns information about a specific instance + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetInstance + */ + getInstance: { + name: "GetInstance", + I: GetInstanceRequest, + O: GetInstanceResponse, + kind: MethodKind.Unary, + }, + /** + * CreateInstance creates a new instance + * + * @generated from rpc rill.runtime.v1.RuntimeService.CreateInstance + */ + createInstance: { + name: "CreateInstance", + I: CreateInstanceRequest, + O: CreateInstanceResponse, + kind: MethodKind.Unary, + }, + /** + * EditInstance edits an existing instance + * + * @generated from rpc rill.runtime.v1.RuntimeService.EditInstance + */ + editInstance: { + name: "EditInstance", + I: EditInstanceRequest, + O: EditInstanceResponse, + kind: MethodKind.Unary, + }, + /** + * DeleteInstance deletes an instance + * + * @generated from rpc rill.runtime.v1.RuntimeService.DeleteInstance + */ + deleteInstance: { + name: "DeleteInstance", + I: DeleteInstanceRequest, + O: DeleteInstanceResponse, + kind: MethodKind.Unary, + }, + /** + * ReloadConfig pulls the latest configuration from the admin service and triggers a repo pull. + * If the instance doesn't have an admin connector, this RPC does nothing. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ReloadConfig + */ + reloadConfig: { + name: "ReloadConfig", + I: ReloadConfigRequest, + O: ReloadConfigResponse, + kind: MethodKind.Unary, + }, + /** + * ListFiles lists all the files matching a glob in a repo. + * The files are sorted by their full path. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListFiles + */ + listFiles: { + name: "ListFiles", + I: ListFilesRequest, + O: ListFilesResponse, + kind: MethodKind.Unary, + }, + /** + * WatchFiles streams repo file update events. It is not supported on all backends. + * + * @generated from rpc rill.runtime.v1.RuntimeService.WatchFiles + */ + watchFiles: { + name: "WatchFiles", + I: WatchFilesRequest, + O: WatchFilesResponse, + kind: MethodKind.ServerStreaming, + }, + /** + * GetFile returns the contents of a specific file in a repo. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetFile + */ + getFile: { + name: "GetFile", + I: GetFileRequest, + O: GetFileResponse, + kind: MethodKind.Unary, + }, + /** + * PutFile creates or updates a file in a repo + * + * @generated from rpc rill.runtime.v1.RuntimeService.PutFile + */ + putFile: { + name: "PutFile", + I: PutFileRequest, + O: PutFileResponse, + kind: MethodKind.Unary, + }, + /** + * CreateDirectory create a directory for the given path + * + * @generated from rpc rill.runtime.v1.RuntimeService.CreateDirectory + */ + createDirectory: { + name: "CreateDirectory", + I: CreateDirectoryRequest, + O: CreateDirectoryResponse, + kind: MethodKind.Unary, + }, + /** + * DeleteFile deletes a file from a repo + * + * @generated from rpc rill.runtime.v1.RuntimeService.DeleteFile + */ + deleteFile: { + name: "DeleteFile", + I: DeleteFileRequest, + O: DeleteFileResponse, + kind: MethodKind.Unary, + }, + /** + * RenameFile renames a file in a repo + * + * @generated from rpc rill.runtime.v1.RuntimeService.RenameFile + */ + renameFile: { + name: "RenameFile", + I: RenameFileRequest, + O: RenameFileResponse, + kind: MethodKind.Unary, + }, + /** + * ListExamples lists all the examples embedded into binary + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListExamples + */ + listExamples: { + name: "ListExamples", + I: ListExamplesRequest, + O: ListExamplesResponse, + kind: MethodKind.Unary, + }, + /** + * UnpackExample unpacks an example project + * + * @generated from rpc rill.runtime.v1.RuntimeService.UnpackExample + */ + unpackExample: { + name: "UnpackExample", + I: UnpackExampleRequest, + O: UnpackExampleResponse, + kind: MethodKind.Unary, + }, + /** + * UnpackEmpty unpacks an empty project + * + * @generated from rpc rill.runtime.v1.RuntimeService.UnpackEmpty + */ + unpackEmpty: { + name: "UnpackEmpty", + I: UnpackEmptyRequest, + O: UnpackEmptyResponse, + kind: MethodKind.Unary, + }, + /** + * GenerateMetricsViewFile generates a metrics view YAML file from a table in an OLAP database + * + * @generated from rpc rill.runtime.v1.RuntimeService.GenerateMetricsViewFile + */ + generateMetricsViewFile: { + name: "GenerateMetricsViewFile", + I: GenerateMetricsViewFileRequest, + O: GenerateMetricsViewFileResponse, + kind: MethodKind.Unary, + }, + /** + * GenerateCanvasFile generates a canvas YAML file from a metrics view + * + * @generated from rpc rill.runtime.v1.RuntimeService.GenerateCanvasFile + */ + generateCanvasFile: { + name: "GenerateCanvasFile", + I: GenerateCanvasFileRequest, + O: GenerateCanvasFileResponse, + kind: MethodKind.Unary, + }, + /** + * GenerateResolver generates resolver and resolver properties from a table or a metrics view + * + * @generated from rpc rill.runtime.v1.RuntimeService.GenerateResolver + */ + generateResolver: { + name: "GenerateResolver", + I: GenerateResolverRequest, + O: GenerateResolverResponse, + kind: MethodKind.Unary, + }, + /** + * GenerateRenderer generates a component renderer and renderer properties from a resolver and resolver properties + * + * @generated from rpc rill.runtime.v1.RuntimeService.GenerateRenderer + */ + generateRenderer: { + name: "GenerateRenderer", + I: GenerateRendererRequest, + O: GenerateRendererResponse, + kind: MethodKind.Unary, + }, + /** + * QueryResolver queries a resolver with the given properties and arguments + * + * @generated from rpc rill.runtime.v1.RuntimeService.QueryResolver + */ + queryResolver: { + name: "QueryResolver", + I: QueryResolverRequest, + O: QueryResolverResponse, + kind: MethodKind.Unary, + }, + /** + * GetLogs returns recent logs from a controller + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetLogs + */ + getLogs: { + name: "GetLogs", + I: GetLogsRequest, + O: GetLogsResponse, + kind: MethodKind.Unary, + }, + /** + * WatchLogs streams new logs emitted from a controller + * + * @generated from rpc rill.runtime.v1.RuntimeService.WatchLogs + */ + watchLogs: { + name: "WatchLogs", + I: WatchLogsRequest, + O: WatchLogsResponse, + kind: MethodKind.ServerStreaming, + }, + /** + * ListResources lists the resources stored in the catalog + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListResources + */ + listResources: { + name: "ListResources", + I: ListResourcesRequest, + O: ListResourcesResponse, + kind: MethodKind.Unary, + }, + /** + * WatchResources streams updates to catalog resources (including creation and deletion events) + * + * @generated from rpc rill.runtime.v1.RuntimeService.WatchResources + */ + watchResources: { + name: "WatchResources", + I: WatchResourcesRequest, + O: WatchResourcesResponse, + kind: MethodKind.ServerStreaming, + }, + /** + * GetResource looks up a specific catalog resource + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetResource + */ + getResource: { + name: "GetResource", + I: GetResourceRequest, + O: GetResourceResponse, + kind: MethodKind.Unary, + }, + /** + * GetExplore is a convenience RPC that combines looking up an Explore resource and its underlying MetricsView into one network call. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetExplore + */ + getExplore: { + name: "GetExplore", + I: GetExploreRequest, + O: GetExploreResponse, + kind: MethodKind.Unary, + }, + /** + * GetModelPartitions returns the partitions of a model + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetModelPartitions + */ + getModelPartitions: { + name: "GetModelPartitions", + I: GetModelPartitionsRequest, + O: GetModelPartitionsResponse, + kind: MethodKind.Unary, + }, + /** + * CreateTrigger submits a refresh trigger, which will asynchronously refresh the specified resources. + * Triggers are ephemeral resources that will be cleaned up by the controller. + * + * @generated from rpc rill.runtime.v1.RuntimeService.CreateTrigger + */ + createTrigger: { + name: "CreateTrigger", + I: CreateTriggerRequest, + O: CreateTriggerResponse, + kind: MethodKind.Unary, + }, + /** + * ListConnectorDrivers returns a description of all the connector drivers registed in the runtime, + * including their configuration specs and the capabilities they support. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListConnectorDrivers + */ + listConnectorDrivers: { + name: "ListConnectorDrivers", + I: ListConnectorDriversRequest, + O: ListConnectorDriversResponse, + kind: MethodKind.Unary, + }, + /** + * AnalyzeConnectors scans all the project files and returns information about all referenced connectors. + * + * @generated from rpc rill.runtime.v1.RuntimeService.AnalyzeConnectors + */ + analyzeConnectors: { + name: "AnalyzeConnectors", + I: AnalyzeConnectorsRequest, + O: AnalyzeConnectorsResponse, + kind: MethodKind.Unary, + }, + /** + * ListNotifierConnectors returns the names of all configured connectors that can be used as notifiers. + * This API is much faster than AnalyzeConnectors and can be called without admin-level permissions. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListNotifierConnectors + */ + listNotifierConnectors: { + name: "ListNotifierConnectors", + I: ListNotifierConnectorsRequest, + O: ListNotifierConnectorsResponse, + kind: MethodKind.Unary, + }, + /** + * ListConversations lists all AI chat conversations for an instance. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListConversations + */ + listConversations: { + name: "ListConversations", + I: ListConversationsRequest, + O: ListConversationsResponse, + kind: MethodKind.Unary, + }, + /** + * GetConversation returns a specific AI chat conversation. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GetConversation + */ + getConversation: { + name: "GetConversation", + I: GetConversationRequest, + O: GetConversationResponse, + kind: MethodKind.Unary, + }, + /** + * ShareConversation enables sharing of the conversation by adding metadata. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ShareConversation + */ + shareConversation: { + name: "ShareConversation", + I: ShareConversationRequest, + O: ShareConversationResponse, + kind: MethodKind.Unary, + }, + /** + * ForkConversation creates a new conversation by copying messages from an existing one. + * If its the owner then all messages will be copied, otherwise only messages up to the session.SharedUntilMessageID are copied. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ForkConversation + */ + forkConversation: { + name: "ForkConversation", + I: ForkConversationRequest, + O: ForkConversationResponse, + kind: MethodKind.Unary, + }, + /** + * ListTools lists metadata about all AI tools that calls to Complete(Streaming) may invoke. + * Note that it covers all registered tools, but the current user may not have access to all of them. + * + * @generated from rpc rill.runtime.v1.RuntimeService.ListTools + */ + listTools: { + name: "ListTools", + I: ListToolsRequest, + O: ListToolsResponse, + kind: MethodKind.Unary, + }, + /** + * Complete runs a language model completion (LLM chat) using the configured AI connector. + * + * @generated from rpc rill.runtime.v1.RuntimeService.Complete + */ + complete: { + name: "Complete", + I: CompleteRequest, + O: CompleteResponse, + kind: MethodKind.Unary, + }, + /** + * CompleteStreaming runs an AI-powered chat completion, optionally invoking agents or tool calls available in Rill. + * + * @generated from rpc rill.runtime.v1.RuntimeService.CompleteStreaming + */ + completeStreaming: { + name: "CompleteStreaming", + I: CompleteStreamingRequest, + O: CompleteStreamingResponse, + kind: MethodKind.ServerStreaming, + }, + /** + * IssueDevJWT issues a JWT for mimicking a user in local development. + * + * @generated from rpc rill.runtime.v1.RuntimeService.IssueDevJWT + */ + issueDevJWT: { + name: "IssueDevJWT", + I: IssueDevJWTRequest, + O: IssueDevJWTResponse, + kind: MethodKind.Unary, + }, + /** + * AnalyzeVariables scans `Source`, `Model` and `Connector` resources in the catalog for use of an environment variable + * + * @generated from rpc rill.runtime.v1.RuntimeService.AnalyzeVariables + */ + analyzeVariables: { + name: "AnalyzeVariables", + I: AnalyzeVariablesRequest, + O: AnalyzeVariablesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc rill.runtime.v1.RuntimeService.ListGitCommits + */ + listGitCommits: { + name: "ListGitCommits", + I: ListGitCommitsRequest, + O: ListGitCommitsResponse, + kind: MethodKind.Unary, + }, + /** + * GitStatus returns the current status of the local git repo. This is equivalent to doing a `git fetch` followed by running `git status`. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GitStatus + */ + gitStatus: { + name: "GitStatus", + I: GitStatusRequest, + O: GitStatusResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc rill.runtime.v1.RuntimeService.ListGitBranches + */ + listGitBranches: { + name: "ListGitBranches", + I: ListGitBranchesRequest, + O: ListGitBranchesResponse, + kind: MethodKind.Unary, + }, + /** + * GitCommit commits the local changes to the git repo equivalent to `git commit -am ` command. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GitCommit + */ + gitCommit: { + name: "GitCommit", + I: GitCommitRequest, + O: GitCommitResponse, + kind: MethodKind.Unary, + }, + /** + * RestoreGitCommit creates a new commit that restores the state of the repo to the specified commit SHA. + * This effectively discards all the changes made after the specified commit. + * + * @generated from rpc rill.runtime.v1.RuntimeService.RestoreGitCommit + */ + restoreGitCommit: { + name: "RestoreGitCommit", + I: RestoreGitCommitRequest, + O: RestoreGitCommitResponse, + kind: MethodKind.Unary, + }, + /** + * GitMergeToBranch merges current branch to the specified branch. + * Note: this is not the same as `git merge `, but rather `git checkout ` followed by `git merge `. + * It restores back to the original branch after the merge. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GitMergeToBranch + */ + gitMergeToBranch: { + name: "GitMergeToBranch", + I: GitMergeToBranchRequest, + O: GitMergeToBranchResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc rill.runtime.v1.RuntimeService.GitSwitchBranch + */ + gitSwitchBranch: { + name: "GitSwitchBranch", + I: GitSwitchBranchRequest, + O: GitSwitchBranchResponse, + kind: MethodKind.Unary, + }, + /** + * GitPull fetches the latest changes from the remote git repo equivalent to `git pull` command. + * If there are any merge conflicts the pull is aborted. + * Force can be set to true to force the pull and overwrite any local changes. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GitPull + */ + gitPull: { + name: "GitPull", + I: GitPullRequest, + O: GitPullResponse, + kind: MethodKind.Unary, + }, + /** + * GitPush pushes the local changes to the remote git repo equivalent to `git push` command. + * It only pushes the changes to the existing remote repo. + * + * @generated from rpc rill.runtime.v1.RuntimeService.GitPush + */ + gitPush: { + name: "GitPush", + I: GitPushRequest, + O: GitPushResponse, + kind: MethodKind.Unary, + }, + } +} as const; + diff --git a/web-common/src/proto/gen/rill/runtime/v1/connectors_connect.ts b/web-common/src/proto/gen/rill/runtime/v1/connectors_connect.ts new file mode 100644 index 00000000000..ba9bcec6e68 --- /dev/null +++ b/web-common/src/proto/gen/rill/runtime/v1/connectors_connect.ts @@ -0,0 +1,94 @@ +// @generated by protoc-gen-connect-es v1.4.0 with parameter "target=ts" +// @generated from file rill/runtime/v1/connectors.proto (package rill.runtime.v1, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { GetTableRequest, GetTableResponse, ListBucketsRequest, ListBucketsResponse, ListDatabaseSchemasRequest, ListDatabaseSchemasResponse, ListObjectsRequest, ListObjectsResponse, ListTablesRequest, ListTablesResponse, OLAPGetTableRequest, OLAPGetTableResponse, OLAPListTablesRequest, OLAPListTablesResponse } from "./connectors_pb.js"; +import { MethodKind } from "@bufbuild/protobuf"; + +/** + * @generated from service rill.runtime.v1.ConnectorService + */ +export const ConnectorService = { + typeName: "rill.runtime.v1.ConnectorService", + methods: { + /** + * ListBuckets lists buckets accessible with the configured credentials. + * + * @generated from rpc rill.runtime.v1.ConnectorService.ListBuckets + */ + listBuckets: { + name: "ListBuckets", + I: ListBucketsRequest, + O: ListBucketsResponse, + kind: MethodKind.Unary, + }, + /** + * ListObjects lists objects for the given bucket. + * + * @generated from rpc rill.runtime.v1.ConnectorService.ListObjects + */ + listObjects: { + name: "ListObjects", + I: ListObjectsRequest, + O: ListObjectsResponse, + kind: MethodKind.Unary, + }, + /** + * OLAPListTables list all tables across all databases in an OLAP + * + * @generated from rpc rill.runtime.v1.ConnectorService.OLAPListTables + */ + oLAPListTables: { + name: "OLAPListTables", + I: OLAPListTablesRequest, + O: OLAPListTablesResponse, + kind: MethodKind.Unary, + }, + /** + * OLAPGetTable returns metadata about a table or view in an OLAP + * + * @generated from rpc rill.runtime.v1.ConnectorService.OLAPGetTable + */ + oLAPGetTable: { + name: "OLAPGetTable", + I: OLAPGetTableRequest, + O: OLAPGetTableResponse, + kind: MethodKind.Unary, + }, + /** + * ListDatabaseSchemas list all schemas across databases + * + * @generated from rpc rill.runtime.v1.ConnectorService.ListDatabaseSchemas + */ + listDatabaseSchemas: { + name: "ListDatabaseSchemas", + I: ListDatabaseSchemasRequest, + O: ListDatabaseSchemasResponse, + kind: MethodKind.Unary, + }, + /** + * ListTables list all tables for database and database_schema provided + * + * @generated from rpc rill.runtime.v1.ConnectorService.ListTables + */ + listTables: { + name: "ListTables", + I: ListTablesRequest, + O: ListTablesResponse, + kind: MethodKind.Unary, + }, + /** + * GetTable returns metadata about a table or view + * + * @generated from rpc rill.runtime.v1.ConnectorService.GetTable + */ + getTable: { + name: "GetTable", + I: GetTableRequest, + O: GetTableResponse, + kind: MethodKind.Unary, + }, + } +} as const; + diff --git a/web-common/src/proto/gen/rill/runtime/v1/queries_connect.ts b/web-common/src/proto/gen/rill/runtime/v1/queries_connect.ts new file mode 100644 index 00000000000..1c68c818d99 --- /dev/null +++ b/web-common/src/proto/gen/rill/runtime/v1/queries_connect.ts @@ -0,0 +1,405 @@ +// @generated by protoc-gen-connect-es v1.4.0 with parameter "target=ts" +// @generated from file rill/runtime/v1/queries.proto (package rill.runtime.v1, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { ColumnCardinalityRequest, ColumnCardinalityResponse, ColumnDescriptiveStatisticsRequest, ColumnDescriptiveStatisticsResponse, ColumnNullCountRequest, ColumnNullCountResponse, ColumnNumericHistogramRequest, ColumnNumericHistogramResponse, ColumnRollupIntervalRequest, ColumnRollupIntervalResponse, ColumnRugHistogramRequest, ColumnRugHistogramResponse, ColumnTimeGrainRequest, ColumnTimeGrainResponse, ColumnTimeRangeRequest, ColumnTimeRangeResponse, ColumnTimeSeriesRequest, ColumnTimeSeriesResponse, ColumnTopKRequest, ColumnTopKResponse, ConvertExpressionToMetricsSQLRequest, ConvertExpressionToMetricsSQLResponse, ExportReportRequest, ExportReportResponse, ExportRequest, ExportResponse, MetricsViewAggregationRequest, MetricsViewAggregationResponse, MetricsViewAnnotationsRequest, MetricsViewAnnotationsResponse, MetricsViewComparisonRequest, MetricsViewComparisonResponse, MetricsViewRowsRequest, MetricsViewRowsResponse, MetricsViewSchemaRequest, MetricsViewSchemaResponse, MetricsViewSearchRequest, MetricsViewSearchResponse, MetricsViewTimeRangeRequest, MetricsViewTimeRangeResponse, MetricsViewTimeRangesRequest, MetricsViewTimeRangesResponse, MetricsViewTimeSeriesRequest, MetricsViewTimeSeriesResponse, MetricsViewToplistRequest, MetricsViewToplistResponse, MetricsViewTotalsRequest, MetricsViewTotalsResponse, QueryBatchRequest, QueryBatchResponse, QueryRequest, QueryResponse, ResolveCanvasRequest, ResolveCanvasResponse, ResolveComponentRequest, ResolveComponentResponse, ResolveTemplatedStringRequest, ResolveTemplatedStringResponse, TableCardinalityRequest, TableCardinalityResponse, TableColumnsRequest, TableColumnsResponse, TableRowsRequest, TableRowsResponse } from "./queries_pb.js"; +import { MethodKind } from "@bufbuild/protobuf"; + +/** + * @generated from service rill.runtime.v1.QueryService + */ +export const QueryService = { + typeName: "rill.runtime.v1.QueryService", + methods: { + /** + * Query runs a SQL query against the instance's OLAP datastore. + * + * @generated from rpc rill.runtime.v1.QueryService.Query + */ + query: { + name: "Query", + I: QueryRequest, + O: QueryResponse, + kind: MethodKind.Unary, + }, + /** + * Batch request with different queries + * + * @generated from rpc rill.runtime.v1.QueryService.QueryBatch + */ + queryBatch: { + name: "QueryBatch", + I: QueryBatchRequest, + O: QueryBatchResponse, + kind: MethodKind.ServerStreaming, + }, + /** + * Export builds a URL to download the results of a query as a file. + * + * @generated from rpc rill.runtime.v1.QueryService.Export + */ + export: { + name: "Export", + I: ExportRequest, + O: ExportResponse, + kind: MethodKind.Unary, + }, + /** + * ExportReport builds a URL to download the results of a query as a file. + * + * @generated from rpc rill.runtime.v1.QueryService.ExportReport + */ + exportReport: { + name: "ExportReport", + I: ExportReportRequest, + O: ExportReportResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewAggregation is a generic API for running group-by/pivot queries against a metrics view. + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewAggregation + */ + metricsViewAggregation: { + name: "MetricsViewAggregation", + I: MetricsViewAggregationRequest, + O: MetricsViewAggregationResponse, + kind: MethodKind.Unary, + }, + /** + * + * Deprecated - use MetricsViewComparison instead. + * MetricsViewToplist returns the top dimension values of a metrics view sorted by one or more measures. + * It's a convenience API for querying a metrics view. + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewToplist + */ + metricsViewToplist: { + name: "MetricsViewToplist", + I: MetricsViewToplistRequest, + O: MetricsViewToplistResponse, + kind: MethodKind.Unary, + }, + /** + * + * MetricsViewComparison returns a toplist containing comparison data of another toplist (same dimension/measure but a different time range). + * Returns a toplist without comparison data if comparison time range is omitted. + * + * ie. comparsion toplist: + * | measure1_base | measure1_previous | measure1__delta_abs | measure1__delta_rel | dimension | + * |---------------|---------------------|---------------------|--------------------|-----------| + * | 2 | 2 | 0 | 0 | Safari | + * | 1 | 0 | 1 | N/A | Chrome | + * | 0 | 4 | -4 | -1.0 | Firefox | + * + * ie. toplist: + * | measure1 | measure2 | dimension | + * |----------|----------|-----------| + * | 2 | 45 | Safari | + * | 1 | 350 | Chrome | + * | 0 | 25 | Firefox | + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewComparison + */ + metricsViewComparison: { + name: "MetricsViewComparison", + I: MetricsViewComparisonRequest, + O: MetricsViewComparisonResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewTimeSeries returns time series for the measures in the metrics view. + * It's a convenience API for querying a metrics view. + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewTimeSeries + */ + metricsViewTimeSeries: { + name: "MetricsViewTimeSeries", + I: MetricsViewTimeSeriesRequest, + O: MetricsViewTimeSeriesResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewTotals returns totals over a time period for the measures in a metrics view. + * It's a convenience API for querying a metrics view. + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewTotals + */ + metricsViewTotals: { + name: "MetricsViewTotals", + I: MetricsViewTotalsRequest, + O: MetricsViewTotalsResponse, + kind: MethodKind.Unary, + }, + /** + * + * MetricsViewRows returns the underlying model rows matching a metrics view time range and filter(s). + * + * ie. without granularity + * | column1 | column2 | dimension | + * |---------|---------|-----------| + * | 2 | 2 | Safari | + * | 1 | 0 | Chrome | + * | 0 | 4 | Firefox | + * + * ie. with granularity + * | timestamp__day0 | column1 | column2 | dimension | + * |----------------------|---------|---------|-----------| + * | 2022-01-01T00:00:00Z | 2 | 2 | Safari | + * | 2022-01-01T00:00:00Z | 1 | 0 | Chrome | + * | 2022-01-01T00:00:00Z | 0 | 4 | Firefox | + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewRows + */ + metricsViewRows: { + name: "MetricsViewRows", + I: MetricsViewRowsRequest, + O: MetricsViewRowsResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewTimeRange Get the time range summaries (min, max) for time column in a metrics view. + * Deprecated: use MetricsViewTimeRanges instead. + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewTimeRange + */ + metricsViewTimeRange: { + name: "MetricsViewTimeRange", + I: MetricsViewTimeRangeRequest, + O: MetricsViewTimeRangeResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewSchema Get the data types of measures and dimensions + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewSchema + */ + metricsViewSchema: { + name: "MetricsViewSchema", + I: MetricsViewSchemaRequest, + O: MetricsViewSchemaResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewSearch Get the data types of measures and dimensions + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewSearch + */ + metricsViewSearch: { + name: "MetricsViewSearch", + I: MetricsViewSearchRequest, + O: MetricsViewSearchResponse, + kind: MethodKind.Unary, + }, + /** + * MetricsViewTimeRanges resolves time ranges for a metrics view. + * + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewTimeRanges + */ + metricsViewTimeRanges: { + name: "MetricsViewTimeRanges", + I: MetricsViewTimeRangesRequest, + O: MetricsViewTimeRangesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc rill.runtime.v1.QueryService.MetricsViewAnnotations + */ + metricsViewAnnotations: { + name: "MetricsViewAnnotations", + I: MetricsViewAnnotationsRequest, + O: MetricsViewAnnotationsResponse, + kind: MethodKind.Unary, + }, + /** + * ConvertExpressionToMetricsSQL converts a filter expression to a SQL filter string. + * + * @generated from rpc rill.runtime.v1.QueryService.ConvertExpressionToMetricsSQL + */ + convertExpressionToMetricsSQL: { + name: "ConvertExpressionToMetricsSQL", + I: ConvertExpressionToMetricsSQLRequest, + O: ConvertExpressionToMetricsSQLResponse, + kind: MethodKind.Unary, + }, + /** + * ResolveCanvas is a convenience API that returns a canvas and all its referenced components and metrics views. + * + * @generated from rpc rill.runtime.v1.QueryService.ResolveCanvas + */ + resolveCanvas: { + name: "ResolveCanvas", + I: ResolveCanvasRequest, + O: ResolveCanvasResponse, + kind: MethodKind.Unary, + }, + /** + * ResolveComponent resolves renderer for a Component resource. + * + * @generated from rpc rill.runtime.v1.QueryService.ResolveComponent + */ + resolveComponent: { + name: "ResolveComponent", + I: ResolveComponentRequest, + O: ResolveComponentResponse, + kind: MethodKind.Unary, + }, + /** + * ResolveTemplatedString resolves a templated strings. + * + * @generated from rpc rill.runtime.v1.QueryService.ResolveTemplatedString + */ + resolveTemplatedString: { + name: "ResolveTemplatedString", + I: ResolveTemplatedStringRequest, + O: ResolveTemplatedStringResponse, + kind: MethodKind.Unary, + }, + /** + * ColumnRollupInterval returns the minimum time granularity (as well as the time range) for a specified timestamp column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnRollupInterval + */ + columnRollupInterval: { + name: "ColumnRollupInterval", + I: ColumnRollupIntervalRequest, + O: ColumnRollupIntervalResponse, + kind: MethodKind.Unary, + }, + /** + * Get TopK elements from a table for a column given an agg function + * agg function and k are optional, defaults are count(*) and 50 respectively + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnTopK + */ + columnTopK: { + name: "ColumnTopK", + I: ColumnTopKRequest, + O: ColumnTopKResponse, + kind: MethodKind.Unary, + }, + /** + * Get the number of nulls in a column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnNullCount + */ + columnNullCount: { + name: "ColumnNullCount", + I: ColumnNullCountRequest, + O: ColumnNullCountResponse, + kind: MethodKind.Unary, + }, + /** + * Get basic stats for a numeric column like min, max, mean, stddev, etc + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnDescriptiveStatistics + */ + columnDescriptiveStatistics: { + name: "ColumnDescriptiveStatistics", + I: ColumnDescriptiveStatisticsRequest, + O: ColumnDescriptiveStatisticsResponse, + kind: MethodKind.Unary, + }, + /** + * Estimates the smallest time grain present in the column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnTimeGrain + */ + columnTimeGrain: { + name: "ColumnTimeGrain", + I: ColumnTimeGrainRequest, + O: ColumnTimeGrainResponse, + kind: MethodKind.Unary, + }, + /** + * Get the histogram for values in a column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnNumericHistogram + */ + columnNumericHistogram: { + name: "ColumnNumericHistogram", + I: ColumnNumericHistogramRequest, + O: ColumnNumericHistogramResponse, + kind: MethodKind.Unary, + }, + /** + * Get outliers for a numeric column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnRugHistogram + */ + columnRugHistogram: { + name: "ColumnRugHistogram", + I: ColumnRugHistogramRequest, + O: ColumnRugHistogramResponse, + kind: MethodKind.Unary, + }, + /** + * Get the time range summaries (min, max) for a column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnTimeRange + */ + columnTimeRange: { + name: "ColumnTimeRange", + I: ColumnTimeRangeRequest, + O: ColumnTimeRangeResponse, + kind: MethodKind.Unary, + }, + /** + * Get cardinality for a column + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnCardinality + */ + columnCardinality: { + name: "ColumnCardinality", + I: ColumnCardinalityRequest, + O: ColumnCardinalityResponse, + kind: MethodKind.Unary, + }, + /** + * Generate time series for the given measures (aggregation expressions) along with the sparkline timeseries + * + * @generated from rpc rill.runtime.v1.QueryService.ColumnTimeSeries + */ + columnTimeSeries: { + name: "ColumnTimeSeries", + I: ColumnTimeSeriesRequest, + O: ColumnTimeSeriesResponse, + kind: MethodKind.Unary, + }, + /** + * TableCardinality returns row count + * + * @generated from rpc rill.runtime.v1.QueryService.TableCardinality + */ + tableCardinality: { + name: "TableCardinality", + I: TableCardinalityRequest, + O: TableCardinalityResponse, + kind: MethodKind.Unary, + }, + /** + * TableColumns returns column profiles + * + * @generated from rpc rill.runtime.v1.QueryService.TableColumns + */ + tableColumns: { + name: "TableColumns", + I: TableColumnsRequest, + O: TableColumnsResponse, + kind: MethodKind.Unary, + }, + /** + * TableRows returns table rows + * + * @generated from rpc rill.runtime.v1.QueryService.TableRows + */ + tableRows: { + name: "TableRows", + I: TableRowsRequest, + O: TableRowsResponse, + kind: MethodKind.Unary, + }, + } +} as const; + diff --git a/web-common/src/runtime-client/constants.ts b/web-common/src/runtime-client/constants.ts index 011d0419851..521df5e4c5d 100644 --- a/web-common/src/runtime-client/constants.ts +++ b/web-common/src/runtime-client/constants.ts @@ -1,2 +1,8 @@ // The TTL is actually set in the Admin server – we just use the value for some frontend logic export const RUNTIME_ACCESS_TOKEN_DEFAULT_TTL = 30 * 60 * 1000; // 30 minutes + +// Extra buffer to ensure the JWT hasn't expired by the time it reaches the server +export const JWT_EXPIRY_WARNING_WINDOW = 2 * 1000; + +// Interval to recheck JWT freshness while waiting for a refresh +export const CHECK_RUNTIME_STORE_FOR_JWT_INTERVAL = 50; diff --git a/web-common/src/runtime-client/http-client.ts b/web-common/src/runtime-client/http-client.ts index 6601cdc1ba9..4b5fbe140db 100644 --- a/web-common/src/runtime-client/http-client.ts +++ b/web-common/src/runtime-client/http-client.ts @@ -3,7 +3,11 @@ import type { HTTPError, } from "@rilldata/web-common/runtime-client/fetchWrapper"; import { get } from "svelte/store"; -import { RUNTIME_ACCESS_TOKEN_DEFAULT_TTL } from "./constants"; +import { + RUNTIME_ACCESS_TOKEN_DEFAULT_TTL, + JWT_EXPIRY_WARNING_WINDOW, + CHECK_RUNTIME_STORE_FOR_JWT_INTERVAL, +} from "./constants"; import { HttpRequestQueue } from "./http-request-queue/HttpRequestQueue"; import { type JWT, runtime } from "./runtime-store"; @@ -41,9 +45,6 @@ export const httpClient = async ( return (await httpRequestQueue.add(interceptedConfig)) as Promise; }; -const JWT_EXPIRY_WARNING_WINDOW = 2 * 1000; // Extra time to ensure that the JWT is not expired when it ultimately reaches the server -const CHECK_RUNTIME_STORE_FOR_JWT_INTERVAL = 50; // Interval to recheck JWT freshness in milliseconds - /** * If the JWT has expired, or is close to expiring, wait for a fresh one. */ diff --git a/web-common/src/runtime-client/v2/RuntimeProvider.svelte b/web-common/src/runtime-client/v2/RuntimeProvider.svelte new file mode 100644 index 00000000000..a7402a85fd0 --- /dev/null +++ b/web-common/src/runtime-client/v2/RuntimeProvider.svelte @@ -0,0 +1,37 @@ + + +{#if host && instanceId} + +{/if} diff --git a/web-common/src/runtime-client/v2/context.ts b/web-common/src/runtime-client/v2/context.ts new file mode 100644 index 00000000000..789bbc609a1 --- /dev/null +++ b/web-common/src/runtime-client/v2/context.ts @@ -0,0 +1,19 @@ +import { getContext } from "svelte"; +import type { RuntimeClient } from "./runtime-client"; + +export const RUNTIME_CONTEXT_KEY = Symbol("runtime-client"); + +/** + * Returns the RuntimeClient set by the nearest ancestor RuntimeProvider. + * Must be called during component initialization (top-level ` - -
- {#if data.initialized} - - - - {#if $deploy} - + + +
+ {#if data.initialized} + + + + {#if $deploy} + + {/if} {/if} - {/if} - -
-
+ +
+
+
{#if $overlay !== null} From ba367e847fb5e1f547ad91a61518e71af783b028 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 11:37:11 +0300 Subject: [PATCH 02/27] feat: add TanStack Query hook code generator (Phase 2) Add a build-time code generator that reads ConnectRPC *_connect.ts service descriptors and produces TanStack Query hooks for Svelte. For each unary query method, generates 4 tiers: raw RPC function, query key factory, query options factory, and convenience createQuery hook. Mutation methods get 3 tiers: raw function, mutation options, and createMutation hook. Output: 59 queries + 28 mutations across QueryService, RuntimeService, and ConnectorService. Streaming methods (watchFiles, watchResources, watchLogs, completeStreaming, queryBatch) are skipped. Generated hooks take RuntimeClient as first argument and inject instanceId automatically, matching the Phase 1 context architecture. --- Makefile | 1 + web-common/package.json | 1 + .../scripts/generate-query-hooks-config.ts | 81 + web-common/scripts/generate-query-hooks.ts | 363 ++ .../v2/gen/connector-service.ts | 462 +++ web-common/src/runtime-client/v2/gen/index.ts | 5 + .../runtime-client/v2/gen/query-service.ts | 2001 +++++++++++ .../runtime-client/v2/gen/runtime-service.ts | 2934 +++++++++++++++++ 8 files changed, 5848 insertions(+) create mode 100644 web-common/scripts/generate-query-hooks-config.ts create mode 100644 web-common/scripts/generate-query-hooks.ts create mode 100644 web-common/src/runtime-client/v2/gen/connector-service.ts create mode 100644 web-common/src/runtime-client/v2/gen/index.ts create mode 100644 web-common/src/runtime-client/v2/gen/query-service.ts create mode 100644 web-common/src/runtime-client/v2/gen/runtime-service.ts diff --git a/Makefile b/Makefile index 0e046eba401..35827f4c95c 100644 --- a/Makefile +++ b/Makefile @@ -66,5 +66,6 @@ proto.generate: scripts/convert-openapi-v2-to-v3/convert.go --force --public-only \ proto/gen/rill/admin/v1/admin.swagger.yaml proto/gen/rill/admin/v1/public.openapi.yaml npm run generate:runtime-client -w web-common + npm run generate:query-hooks -w web-common npm run generate:client -w web-admin \ No newline at end of file diff --git a/web-common/package.json b/web-common/package.json index 9b89aa91a61..877ccad2a26 100644 --- a/web-common/package.json +++ b/web-common/package.json @@ -6,6 +6,7 @@ "lint": "prettier --check . && eslint .", "format": "prettier --write .", "generate:runtime-client": "svelte-kit sync && orval --config ./orval.config.ts", + "generate:query-hooks": "tsx scripts/generate-query-hooks.ts", "generate:sveltekit": "svelte-kit sync", "generate:template-schema": "ts-json-schema-generator --path 'src/features/canvas/components/types.ts' --type TemplateSpec -o ../runtime/parser/data/component-template-v1.json", "test": "vitest run", diff --git a/web-common/scripts/generate-query-hooks-config.ts b/web-common/scripts/generate-query-hooks-config.ts new file mode 100644 index 00000000000..9d933431938 --- /dev/null +++ b/web-common/scripts/generate-query-hooks-config.ts @@ -0,0 +1,81 @@ +/** + * Classification config for the query hooks code generator. + * Determines whether each RPC method produces a query or mutation hook, + * or should be skipped entirely (streaming methods). + */ + +export type MethodClassification = "query" | "mutation" | "skip"; + +/** + * Per-service overrides. Methods not listed here fall through to the + * service-level default classifier. + */ +export const methodOverrides: Record< + string, + Record +> = { + QueryService: { + // Semantically write operations + export: "mutation", + exportReport: "mutation", + query: "mutation", + // Streaming + queryBatch: "skip", + }, + RuntimeService: { + // Streaming + watchFiles: "skip", + watchLogs: "skip", + watchResources: "skip", + completeStreaming: "skip", + // Explicitly classified as queries (despite not matching Get/List prefix) + issueDevJWT: "query", + analyzeConnectors: "query", + analyzeVariables: "query", + queryResolver: "query", + }, + ConnectorService: { + // All methods are queries (no overrides needed) + }, +}; + +/** + * Default classifier for methods not in the override map. + * RuntimeService uses prefix-based classification; other services default to query. + */ +export function classifyMethod( + serviceName: string, + methodName: string, +): MethodClassification { + // Check overrides first + const overrides = methodOverrides[serviceName]; + if (overrides && methodName in overrides) { + return overrides[methodName]; + } + + // Service-specific defaults + if (serviceName === "RuntimeService") { + const queryPrefixes = [ + "get", + "list", + "ping", + "health", + "instanceHealth", + ]; + const lowerMethod = methodName.charAt(0).toLowerCase() + methodName.slice(1); + if (queryPrefixes.some((p) => lowerMethod.startsWith(p))) { + return "query"; + } + return "mutation"; + } + + if (serviceName === "QueryService") { + return "query"; + } + + if (serviceName === "ConnectorService") { + return "query"; + } + + return "query"; +} diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts new file mode 100644 index 00000000000..d5667e573fe --- /dev/null +++ b/web-common/scripts/generate-query-hooks.ts @@ -0,0 +1,363 @@ +/** + * Code generator: reads ConnectRPC *_connect.ts service descriptors and + * produces TanStack Query hooks for Svelte. + * + * Usage: tsx scripts/generate-query-hooks.ts + * + * Output: src/runtime-client/v2/gen/{query-service,runtime-service,connector-service}.ts + */ + +import * as fs from "node:fs"; +import * as path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +import { MethodKind } from "@bufbuild/protobuf"; +import { classifyMethod, type MethodClassification } from "./generate-query-hooks-config"; + +// --- Service descriptors --- + +import { QueryService } from "../src/proto/gen/rill/runtime/v1/queries_connect"; +import { RuntimeService } from "../src/proto/gen/rill/runtime/v1/api_connect"; +import { ConnectorService } from "../src/proto/gen/rill/runtime/v1/connectors_connect"; + +interface ServiceDef { + typeName: string; + methods: Record< + string, + { + name: string; + I: { typeName: string }; + O: { typeName: string }; + kind: MethodKind; + } + >; +} + +interface MethodInfo { + /** camelCase method name as it appears in the service descriptor (e.g. "metricsViewAggregation") */ + methodKey: string; + /** PascalCase method name from the proto (e.g. "MetricsViewAggregation") */ + methodName: string; + /** Request message type name (e.g. "MetricsViewAggregationRequest") */ + inputType: string; + /** Response message type name (e.g. "MetricsViewAggregationResponse") */ + outputType: string; + classification: MethodClassification; +} + +// --- Helpers --- + +function pascalCase(s: string): string { + return s.charAt(0).toUpperCase() + s.slice(1); +} + +function extractShortName(typeName: string): string { + // "rill.runtime.v1.MetricsViewAggregationRequest" -> "MetricsViewAggregationRequest" + const parts = typeName.split("."); + return parts[parts.length - 1]; +} + +function getServiceShortName(typeName: string): string { + // "rill.runtime.v1.QueryService" -> "QueryService" + return extractShortName(typeName); +} + +function getServiceClientProp(serviceName: string): string { + // "QueryService" -> "queryService", "RuntimeService" -> "runtimeService" + return serviceName.charAt(0).toLowerCase() + serviceName.slice(1); +} + +/** kebab-case for output filename */ +function toKebabCase(s: string): string { + return s + .replace(/([a-z])([A-Z])/g, "$1-$2") + .replace(/([A-Z])([A-Z][a-z])/g, "$1-$2") + .toLowerCase(); +} + +/** Derive the _pb.ts module path that exports the request/response types */ +function getProtoImportPath(serviceName: string): string { + const fileMap: Record = { + QueryService: "queries_pb", + RuntimeService: "api_pb", + ConnectorService: "connectors_pb", + }; + return `../../../proto/gen/rill/runtime/v1/${fileMap[serviceName]}`; +} + +// --- Method extraction --- + +function extractMethods(service: ServiceDef): MethodInfo[] { + const serviceName = getServiceShortName(service.typeName); + const methods: MethodInfo[] = []; + + for (const [key, method] of Object.entries(service.methods)) { + if (method.kind !== MethodKind.Unary) { + // Skip streaming methods automatically + continue; + } + + const classification = classifyMethod(serviceName, key); + if (classification === "skip") continue; + + methods.push({ + methodKey: key, + methodName: method.name, + inputType: extractShortName(method.I.typeName), + outputType: extractShortName(method.O.typeName), + classification, + }); + } + + return methods; +} + +// --- Code generation --- + +function generateServiceFile(service: ServiceDef): string { + const serviceName = getServiceShortName(service.typeName); + const serviceClientProp = getServiceClientProp(serviceName); + const protoImportPath = getProtoImportPath(serviceName); + const methods = extractMethods(service); + + const queryMethods = methods.filter((m) => m.classification === "query"); + const mutationMethods = methods.filter( + (m) => m.classification === "mutation", + ); + + // Collect all request/response types we need to import + const protoTypes = new Set(); + for (const m of methods) { + protoTypes.add(m.inputType); + protoTypes.add(m.outputType); + } + + const lines: string[] = []; + + // Header + lines.push(`// Generated by generate-query-hooks.ts — DO NOT EDIT`); + lines.push(``); + lines.push(`import type { RuntimeClient } from "../runtime-client";`); + lines.push( + `import type { PartialMessage } from "@bufbuild/protobuf";`, + ); + lines.push( + `import {`, + ` createQuery,`, + ` createMutation,`, + ` type CreateQueryOptions,`, + ` type CreateQueryResult,`, + ` type QueryClient,`, + ` type QueryFunction,`, + ` type QueryKey,`, + ` type CreateMutationOptions,`, + ` type CreateMutationResult,`, + `} from "@tanstack/svelte-query";`, + ); + + // Proto type imports + const sortedTypes = [...protoTypes].sort(); + lines.push( + `import {`, + ...sortedTypes.map((t, i) => + ` ${t}${i < sortedTypes.length - 1 ? "," : ""}`, + ), + `} from "${protoImportPath}";`, + ); + + lines.push(``); + + // --- Query methods --- + for (const m of queryMethods) { + const fnPrefix = `${serviceClientProp.charAt(0).toLowerCase() + serviceClientProp.slice(1)}${pascalCase(m.methodKey)}`; + // Use the same naming convention: serviceName + methodName (e.g. queryServiceMetricsViewAggregation) + + const fullName = `${serviceClientProp}${pascalCase(m.methodKey)}`; + const keyFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}QueryKey`; + const optsFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}QueryOptions`; + const hookName = `create${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}`; + + // Tier 1: Raw function + lines.push( + `/**`, + ` * Raw RPC call: ${serviceName}.${m.methodName}`, + ` */`, + `export function ${fullName}(`, + ` client: RuntimeClient,`, + ` request: PartialMessage>,`, + ` options?: { signal?: AbortSignal },`, + `): Promise<${m.outputType}> {`, + ` return client.${serviceClientProp}.${m.methodKey}(`, + ` { instanceId: client.instanceId, ...request },`, + ` { signal: options?.signal },`, + ` );`, + `}`, + ``, + ); + + // Tier 2: Query key + lines.push( + `export function ${keyFnName}(`, + ` instanceId: string,`, + ` request?: PartialMessage>,`, + `): QueryKey {`, + ` return ["${serviceName}", "${m.methodKey}", instanceId, request ?? {}] as const;`, + `}`, + ``, + ); + + // Tier 3: Query options + lines.push( + `export function ${optsFnName}(`, + ` client: RuntimeClient,`, + ` request: PartialMessage>,`, + ` options?: {`, + ` query?: Partial>;`, + ` },`, + `): CreateQueryOptions<${m.outputType}> & { queryKey: QueryKey } {`, + ` const queryKey = ${keyFnName}(client.instanceId, request);`, + ` const queryFn: QueryFunction<${m.outputType}> = ({ signal }) =>`, + ` ${fullName}(client, request, { signal });`, + ` return {`, + ` queryKey,`, + ` queryFn,`, + ` enabled: !!client.instanceId,`, + ` ...options?.query,`, + ` };`, + `}`, + ``, + ); + + // Tier 4: Convenience hook + lines.push( + `export function ${hookName}(`, + ` client: RuntimeClient,`, + ` request: PartialMessage>,`, + ` options?: {`, + ` query?: Partial>;`, + ` },`, + ` queryClient?: QueryClient,`, + `): CreateQueryResult<${m.outputType}> {`, + ` const queryOptions = ${optsFnName}(client, request, options);`, + ` return createQuery(queryOptions, queryClient);`, + `}`, + ``, + ); + } + + // --- Mutation methods --- + for (const m of mutationMethods) { + const fullName = `${serviceClientProp}${pascalCase(m.methodKey)}`; + const mutOptsFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}MutationOptions`; + const mutHookName = `create${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}Mutation`; + + // Raw function + lines.push( + `/**`, + ` * Raw RPC call (mutation): ${serviceName}.${m.methodName}`, + ` */`, + `export function ${fullName}(`, + ` client: RuntimeClient,`, + ` request: PartialMessage>,`, + `): Promise<${m.outputType}> {`, + ` return client.${serviceClientProp}.${m.methodKey}(`, + ` { instanceId: client.instanceId, ...request },`, + ` );`, + `}`, + ``, + ); + + // Mutation options + lines.push( + `export function ${mutOptsFnName}(`, + ` client: RuntimeClient,`, + ` options?: Partial>>>,`, + `): CreateMutationOptions<${m.outputType}, unknown, PartialMessage>> {`, + ` return {`, + ` mutationFn: (request) => ${fullName}(client, request),`, + ` ...options,`, + ` };`, + `}`, + ``, + ); + + // Mutation hook + lines.push( + `export function ${mutHookName}(`, + ` client: RuntimeClient,`, + ` options?: Partial>>>,`, + ` queryClient?: QueryClient,`, + `): CreateMutationResult<${m.outputType}, unknown, PartialMessage>> {`, + ` const mutationOptions = ${mutOptsFnName}(client, options);`, + ` return createMutation(mutationOptions, queryClient);`, + `}`, + ``, + ); + } + + return lines.join("\n"); +} + +function generateIndex(serviceNames: string[]): string { + const lines = [`// Generated by generate-query-hooks.ts — DO NOT EDIT`, ``]; + for (const name of serviceNames) { + lines.push(`export * from "./${toKebabCase(name)}";`); + } + lines.push(``); + return lines.join("\n"); +} + +// --- Main --- + +const outDir = path.resolve( + __dirname, + "../src/runtime-client/v2/gen", +); + +fs.mkdirSync(outDir, { recursive: true }); + +const services: { descriptor: ServiceDef; name: string }[] = [ + { descriptor: QueryService as unknown as ServiceDef, name: "QueryService" }, + { + descriptor: RuntimeService as unknown as ServiceDef, + name: "RuntimeService", + }, + { + descriptor: ConnectorService as unknown as ServiceDef, + name: "ConnectorService", + }, +]; + +let totalQueries = 0; +let totalMutations = 0; + +for (const { descriptor, name } of services) { + const code = generateServiceFile(descriptor); + const fileName = `${toKebabCase(name)}.ts`; + const filePath = path.join(outDir, fileName); + fs.writeFileSync(filePath, code); + + const methods = extractMethods(descriptor); + const queries = methods.filter((m) => m.classification === "query").length; + const mutations = methods.filter( + (m) => m.classification === "mutation", + ).length; + const skipped = Object.keys(descriptor.methods).length - methods.length; + totalQueries += queries; + totalMutations += mutations; + + console.log( + ` ${fileName}: ${queries} queries, ${mutations} mutations, ${skipped} skipped`, + ); +} + +// Generate barrel index +const indexCode = generateIndex(services.map((s) => s.name)); +fs.writeFileSync(path.join(outDir, "index.ts"), indexCode); + +console.log( + `\nTotal: ${totalQueries} queries, ${totalMutations} mutations`, +); +console.log(`Output: ${outDir}`); diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts new file mode 100644 index 00000000000..f8006491856 --- /dev/null +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -0,0 +1,462 @@ +// Generated by generate-query-hooks.ts — DO NOT EDIT + +import type { RuntimeClient } from "../runtime-client"; +import type { PartialMessage } from "@bufbuild/protobuf"; +import { + createQuery, + createMutation, + type CreateQueryOptions, + type CreateQueryResult, + type QueryClient, + type QueryFunction, + type QueryKey, + type CreateMutationOptions, + type CreateMutationResult, +} from "@tanstack/svelte-query"; +import { + GetTableRequest, + GetTableResponse, + ListBucketsRequest, + ListBucketsResponse, + ListDatabaseSchemasRequest, + ListDatabaseSchemasResponse, + ListObjectsRequest, + ListObjectsResponse, + ListTablesRequest, + ListTablesResponse, + OLAPGetTableRequest, + OLAPGetTableResponse, + OLAPListTablesRequest, + OLAPListTablesResponse, +} from "../../../proto/gen/rill/runtime/v1/connectors_pb"; + +/** + * Raw RPC call: ConnectorService.ListBuckets + */ +export function connectorServiceListBuckets( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.listBuckets( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceListBucketsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "ConnectorService", + "listBuckets", + instanceId, + request ?? {}, + ] as const; +} + +export function getConnectorServiceListBucketsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceListBucketsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceListBuckets(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceListBuckets( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceListBucketsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: ConnectorService.ListObjects + */ +export function connectorServiceListObjects( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.listObjects( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceListObjectsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "ConnectorService", + "listObjects", + instanceId, + request ?? {}, + ] as const; +} + +export function getConnectorServiceListObjectsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceListObjectsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceListObjects(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceListObjects( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceListObjectsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: ConnectorService.OLAPListTables + */ +export function connectorServiceOLAPListTables( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.oLAPListTables( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceOLAPListTablesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "ConnectorService", + "oLAPListTables", + instanceId, + request ?? {}, + ] as const; +} + +export function getConnectorServiceOLAPListTablesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceOLAPListTablesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceOLAPListTables(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceOLAPListTables( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceOLAPListTablesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: ConnectorService.OLAPGetTable + */ +export function connectorServiceOLAPGetTable( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.oLAPGetTable( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceOLAPGetTableQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "ConnectorService", + "oLAPGetTable", + instanceId, + request ?? {}, + ] as const; +} + +export function getConnectorServiceOLAPGetTableQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceOLAPGetTableQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceOLAPGetTable(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceOLAPGetTable( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceOLAPGetTableQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: ConnectorService.ListDatabaseSchemas + */ +export function connectorServiceListDatabaseSchemas( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.listDatabaseSchemas( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceListDatabaseSchemasQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "ConnectorService", + "listDatabaseSchemas", + instanceId, + request ?? {}, + ] as const; +} + +export function getConnectorServiceListDatabaseSchemasQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceListDatabaseSchemasQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceListDatabaseSchemas(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceListDatabaseSchemas( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceListDatabaseSchemasQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: ConnectorService.ListTables + */ +export function connectorServiceListTables( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.listTables( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceListTablesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["ConnectorService", "listTables", instanceId, request ?? {}] as const; +} + +export function getConnectorServiceListTablesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceListTablesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceListTables(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceListTables( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceListTablesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: ConnectorService.GetTable + */ +export function connectorServiceGetTable( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.connectorService.getTable( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getConnectorServiceGetTableQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["ConnectorService", "getTable", instanceId, request ?? {}] as const; +} + +export function getConnectorServiceGetTableQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getConnectorServiceGetTableQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + connectorServiceGetTable(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createConnectorServiceGetTable( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getConnectorServiceGetTableQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} diff --git a/web-common/src/runtime-client/v2/gen/index.ts b/web-common/src/runtime-client/v2/gen/index.ts new file mode 100644 index 00000000000..a7cf632e105 --- /dev/null +++ b/web-common/src/runtime-client/v2/gen/index.ts @@ -0,0 +1,5 @@ +// Generated by generate-query-hooks.ts — DO NOT EDIT + +export * from "./query-service"; +export * from "./runtime-service"; +export * from "./connector-service"; diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts new file mode 100644 index 00000000000..0945495cf0f --- /dev/null +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -0,0 +1,2001 @@ +// Generated by generate-query-hooks.ts — DO NOT EDIT + +import type { RuntimeClient } from "../runtime-client"; +import type { PartialMessage } from "@bufbuild/protobuf"; +import { + createQuery, + createMutation, + type CreateQueryOptions, + type CreateQueryResult, + type QueryClient, + type QueryFunction, + type QueryKey, + type CreateMutationOptions, + type CreateMutationResult, +} from "@tanstack/svelte-query"; +import { + ColumnCardinalityRequest, + ColumnCardinalityResponse, + ColumnDescriptiveStatisticsRequest, + ColumnDescriptiveStatisticsResponse, + ColumnNullCountRequest, + ColumnNullCountResponse, + ColumnNumericHistogramRequest, + ColumnNumericHistogramResponse, + ColumnRollupIntervalRequest, + ColumnRollupIntervalResponse, + ColumnRugHistogramRequest, + ColumnRugHistogramResponse, + ColumnTimeGrainRequest, + ColumnTimeGrainResponse, + ColumnTimeRangeRequest, + ColumnTimeRangeResponse, + ColumnTimeSeriesRequest, + ColumnTimeSeriesResponse, + ColumnTopKRequest, + ColumnTopKResponse, + ConvertExpressionToMetricsSQLRequest, + ConvertExpressionToMetricsSQLResponse, + ExportReportRequest, + ExportReportResponse, + ExportRequest, + ExportResponse, + MetricsViewAggregationRequest, + MetricsViewAggregationResponse, + MetricsViewAnnotationsRequest, + MetricsViewAnnotationsResponse, + MetricsViewComparisonRequest, + MetricsViewComparisonResponse, + MetricsViewRowsRequest, + MetricsViewRowsResponse, + MetricsViewSchemaRequest, + MetricsViewSchemaResponse, + MetricsViewSearchRequest, + MetricsViewSearchResponse, + MetricsViewTimeRangeRequest, + MetricsViewTimeRangeResponse, + MetricsViewTimeRangesRequest, + MetricsViewTimeRangesResponse, + MetricsViewTimeSeriesRequest, + MetricsViewTimeSeriesResponse, + MetricsViewToplistRequest, + MetricsViewToplistResponse, + MetricsViewTotalsRequest, + MetricsViewTotalsResponse, + QueryRequest, + QueryResponse, + ResolveCanvasRequest, + ResolveCanvasResponse, + ResolveComponentRequest, + ResolveComponentResponse, + ResolveTemplatedStringRequest, + ResolveTemplatedStringResponse, + TableCardinalityRequest, + TableCardinalityResponse, + TableColumnsRequest, + TableColumnsResponse, + TableRowsRequest, + TableRowsResponse, +} from "../../../proto/gen/rill/runtime/v1/queries_pb"; + +/** + * Raw RPC call: QueryService.MetricsViewAggregation + */ +export function queryServiceMetricsViewAggregation( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewAggregation( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewAggregationQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewAggregation", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewAggregationQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewAggregationQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewAggregation(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewAggregation( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewAggregationQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewToplist + */ +export function queryServiceMetricsViewToplist( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewToplist( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewToplistQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewToplist", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewToplistQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewToplistQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewToplist(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewToplist( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewToplistQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewComparison + */ +export function queryServiceMetricsViewComparison( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewComparison( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewComparisonQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewComparison", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewComparisonQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewComparisonQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewComparison(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewComparison( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewComparisonQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewTimeSeries + */ +export function queryServiceMetricsViewTimeSeries( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewTimeSeries( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewTimeSeriesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewTimeSeries", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewTimeSeriesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewTimeSeriesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewTimeSeries(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewTimeSeries( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewTimeSeriesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewTotals + */ +export function queryServiceMetricsViewTotals( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewTotals( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewTotalsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewTotals", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewTotalsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewTotalsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewTotals(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewTotals( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewTotalsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewRows + */ +export function queryServiceMetricsViewRows( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewRows( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewRowsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewRows", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewRowsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewRowsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewRows(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewRows( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewRowsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewTimeRange + */ +export function queryServiceMetricsViewTimeRange( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewTimeRange( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewTimeRangeQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewTimeRange", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewTimeRangeQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewTimeRangeQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewTimeRange(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewTimeRange( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewTimeRangeQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewSchema + */ +export function queryServiceMetricsViewSchema( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewSchema( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewSchemaQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewSchema", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewSchemaQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewSchemaQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewSchema(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewSchema( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewSchemaQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewSearch + */ +export function queryServiceMetricsViewSearch( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewSearch( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewSearchQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewSearch", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewSearchQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewSearchQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewSearch(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewSearch( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewSearchQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewTimeRanges + */ +export function queryServiceMetricsViewTimeRanges( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewTimeRanges( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewTimeRangesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewTimeRanges", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewTimeRangesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewTimeRangesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewTimeRanges(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewTimeRanges( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewTimeRangesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.MetricsViewAnnotations + */ +export function queryServiceMetricsViewAnnotations( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.metricsViewAnnotations( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceMetricsViewAnnotationsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "metricsViewAnnotations", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceMetricsViewAnnotationsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceMetricsViewAnnotationsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceMetricsViewAnnotations(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceMetricsViewAnnotations( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceMetricsViewAnnotationsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ConvertExpressionToMetricsSQL + */ +export function queryServiceConvertExpressionToMetricsSQL( + client: RuntimeClient, + request: PartialMessage< + Omit + >, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.convertExpressionToMetricsSQL( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceConvertExpressionToMetricsSQLQueryKey( + instanceId: string, + request?: PartialMessage< + Omit + >, +): QueryKey { + return [ + "QueryService", + "convertExpressionToMetricsSQL", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( + client: RuntimeClient, + request: PartialMessage< + Omit + >, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { + queryKey: QueryKey; +} { + const queryKey = getQueryServiceConvertExpressionToMetricsSQLQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceConvertExpressionToMetricsSQL(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceConvertExpressionToMetricsSQL( + client: RuntimeClient, + request: PartialMessage< + Omit + >, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceConvertExpressionToMetricsSQLQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ResolveCanvas + */ +export function queryServiceResolveCanvas( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.resolveCanvas( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceResolveCanvasQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["QueryService", "resolveCanvas", instanceId, request ?? {}] as const; +} + +export function getQueryServiceResolveCanvasQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceResolveCanvasQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceResolveCanvas(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceResolveCanvas( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceResolveCanvasQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ResolveComponent + */ +export function queryServiceResolveComponent( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.resolveComponent( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceResolveComponentQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "resolveComponent", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceResolveComponentQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceResolveComponentQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceResolveComponent(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceResolveComponent( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceResolveComponentQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ResolveTemplatedString + */ +export function queryServiceResolveTemplatedString( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.resolveTemplatedString( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceResolveTemplatedStringQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "resolveTemplatedString", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceResolveTemplatedStringQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceResolveTemplatedStringQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceResolveTemplatedString(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceResolveTemplatedString( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceResolveTemplatedStringQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnRollupInterval + */ +export function queryServiceColumnRollupInterval( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnRollupInterval( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnRollupIntervalQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnRollupInterval", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnRollupIntervalQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnRollupIntervalQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnRollupInterval(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnRollupInterval( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnRollupIntervalQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnTopK + */ +export function queryServiceColumnTopK( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnTopK( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnTopKQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["QueryService", "columnTopK", instanceId, request ?? {}] as const; +} + +export function getQueryServiceColumnTopKQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnTopKQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnTopK(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnTopK( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnTopKQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnNullCount + */ +export function queryServiceColumnNullCount( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnNullCount( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnNullCountQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnNullCount", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnNullCountQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnNullCountQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnNullCount(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnNullCount( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnNullCountQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnDescriptiveStatistics + */ +export function queryServiceColumnDescriptiveStatistics( + client: RuntimeClient, + request: PartialMessage< + Omit + >, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnDescriptiveStatistics( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnDescriptiveStatisticsQueryKey( + instanceId: string, + request?: PartialMessage< + Omit + >, +): QueryKey { + return [ + "QueryService", + "columnDescriptiveStatistics", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( + client: RuntimeClient, + request: PartialMessage< + Omit + >, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { + queryKey: QueryKey; +} { + const queryKey = getQueryServiceColumnDescriptiveStatisticsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceColumnDescriptiveStatistics(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnDescriptiveStatistics( + client: RuntimeClient, + request: PartialMessage< + Omit + >, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnDescriptiveStatisticsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnTimeGrain + */ +export function queryServiceColumnTimeGrain( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnTimeGrain( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnTimeGrainQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnTimeGrain", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnTimeGrainQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnTimeGrainQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnTimeGrain(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnTimeGrain( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnTimeGrainQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnNumericHistogram + */ +export function queryServiceColumnNumericHistogram( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnNumericHistogram( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnNumericHistogramQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnNumericHistogram", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnNumericHistogramQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnNumericHistogramQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnNumericHistogram(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnNumericHistogram( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnNumericHistogramQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnRugHistogram + */ +export function queryServiceColumnRugHistogram( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnRugHistogram( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnRugHistogramQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnRugHistogram", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnRugHistogramQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnRugHistogramQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnRugHistogram(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnRugHistogram( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnRugHistogramQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnTimeRange + */ +export function queryServiceColumnTimeRange( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnTimeRange( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnTimeRangeQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnTimeRange", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnTimeRangeQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnTimeRangeQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnTimeRange(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnTimeRange( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnTimeRangeQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnCardinality + */ +export function queryServiceColumnCardinality( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnCardinality( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnCardinalityQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnCardinality", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnCardinalityQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnCardinalityQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnCardinality(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnCardinality( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnCardinalityQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.ColumnTimeSeries + */ +export function queryServiceColumnTimeSeries( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.columnTimeSeries( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceColumnTimeSeriesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "columnTimeSeries", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceColumnTimeSeriesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceColumnTimeSeriesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceColumnTimeSeries(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceColumnTimeSeries( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceColumnTimeSeriesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.TableCardinality + */ +export function queryServiceTableCardinality( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.tableCardinality( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceTableCardinalityQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "QueryService", + "tableCardinality", + instanceId, + request ?? {}, + ] as const; +} + +export function getQueryServiceTableCardinalityQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceTableCardinalityQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceTableCardinality(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceTableCardinality( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceTableCardinalityQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.TableColumns + */ +export function queryServiceTableColumns( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.tableColumns( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceTableColumnsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["QueryService", "tableColumns", instanceId, request ?? {}] as const; +} + +export function getQueryServiceTableColumnsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceTableColumnsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + queryServiceTableColumns(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceTableColumns( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceTableColumnsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: QueryService.TableRows + */ +export function queryServiceTableRows( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.queryService.tableRows( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getQueryServiceTableRowsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["QueryService", "tableRows", instanceId, request ?? {}] as const; +} + +export function getQueryServiceTableRowsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getQueryServiceTableRowsQueryKey(client.instanceId, request); + const queryFn: QueryFunction = ({ signal }) => + queryServiceTableRows(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createQueryServiceTableRows( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getQueryServiceTableRowsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call (mutation): QueryService.Query + */ +export function queryServiceQuery( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.queryService.query({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getQueryServiceQueryMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + QueryResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + QueryResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => queryServiceQuery(client, request), + ...options, + }; +} + +export function createQueryServiceQueryMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + QueryResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + QueryResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getQueryServiceQueryMutationOptions(client, options); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): QueryService.Export + */ +export function queryServiceExport( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.queryService.export({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getQueryServiceExportMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ExportResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + ExportResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => queryServiceExport(client, request), + ...options, + }; +} + +export function createQueryServiceExportMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ExportResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + ExportResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getQueryServiceExportMutationOptions(client, options); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): QueryService.ExportReport + */ +export function queryServiceExportReport( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.queryService.exportReport({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getQueryServiceExportReportMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ExportReportResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + ExportReportResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => queryServiceExportReport(client, request), + ...options, + }; +} + +export function createQueryServiceExportReportMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ExportReportResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + ExportReportResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getQueryServiceExportReportMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts new file mode 100644 index 00000000000..23e1b3db961 --- /dev/null +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -0,0 +1,2934 @@ +// Generated by generate-query-hooks.ts — DO NOT EDIT + +import type { RuntimeClient } from "../runtime-client"; +import type { PartialMessage } from "@bufbuild/protobuf"; +import { + createQuery, + createMutation, + type CreateQueryOptions, + type CreateQueryResult, + type QueryClient, + type QueryFunction, + type QueryKey, + type CreateMutationOptions, + type CreateMutationResult, +} from "@tanstack/svelte-query"; +import { + AnalyzeConnectorsRequest, + AnalyzeConnectorsResponse, + AnalyzeVariablesRequest, + AnalyzeVariablesResponse, + CompleteRequest, + CompleteResponse, + CreateDirectoryRequest, + CreateDirectoryResponse, + CreateInstanceRequest, + CreateInstanceResponse, + CreateTriggerRequest, + CreateTriggerResponse, + DeleteFileRequest, + DeleteFileResponse, + DeleteInstanceRequest, + DeleteInstanceResponse, + EditInstanceRequest, + EditInstanceResponse, + ForkConversationRequest, + ForkConversationResponse, + GenerateCanvasFileRequest, + GenerateCanvasFileResponse, + GenerateMetricsViewFileRequest, + GenerateMetricsViewFileResponse, + GenerateRendererRequest, + GenerateRendererResponse, + GenerateResolverRequest, + GenerateResolverResponse, + GetConversationRequest, + GetConversationResponse, + GetExploreRequest, + GetExploreResponse, + GetFileRequest, + GetFileResponse, + GetInstanceRequest, + GetInstanceResponse, + GetLogsRequest, + GetLogsResponse, + GetModelPartitionsRequest, + GetModelPartitionsResponse, + GetResourceRequest, + GetResourceResponse, + GitCommitRequest, + GitCommitResponse, + GitMergeToBranchRequest, + GitMergeToBranchResponse, + GitPullRequest, + GitPullResponse, + GitPushRequest, + GitPushResponse, + GitStatusRequest, + GitStatusResponse, + GitSwitchBranchRequest, + GitSwitchBranchResponse, + HealthRequest, + HealthResponse, + InstanceHealthRequest, + InstanceHealthResponse, + IssueDevJWTRequest, + IssueDevJWTResponse, + ListConnectorDriversRequest, + ListConnectorDriversResponse, + ListConversationsRequest, + ListConversationsResponse, + ListExamplesRequest, + ListExamplesResponse, + ListFilesRequest, + ListFilesResponse, + ListGitBranchesRequest, + ListGitBranchesResponse, + ListGitCommitsRequest, + ListGitCommitsResponse, + ListInstancesRequest, + ListInstancesResponse, + ListNotifierConnectorsRequest, + ListNotifierConnectorsResponse, + ListResourcesRequest, + ListResourcesResponse, + ListToolsRequest, + ListToolsResponse, + PingRequest, + PingResponse, + PutFileRequest, + PutFileResponse, + QueryResolverRequest, + QueryResolverResponse, + ReloadConfigRequest, + ReloadConfigResponse, + RenameFileRequest, + RenameFileResponse, + RestoreGitCommitRequest, + RestoreGitCommitResponse, + ShareConversationRequest, + ShareConversationResponse, + UnpackEmptyRequest, + UnpackEmptyResponse, + UnpackExampleRequest, + UnpackExampleResponse, +} from "../../../proto/gen/rill/runtime/v1/api_pb"; + +/** + * Raw RPC call: RuntimeService.Ping + */ +export function runtimeServicePing( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.ping( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServicePingQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "ping", instanceId, request ?? {}] as const; +} + +export function getRuntimeServicePingQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServicePingQueryKey(client.instanceId, request); + const queryFn: QueryFunction = ({ signal }) => + runtimeServicePing(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServicePing( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServicePingQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.Health + */ +export function runtimeServiceHealth( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.health( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceHealthQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "health", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceHealthQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceHealthQueryKey(client.instanceId, request); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceHealth(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceHealth( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceHealthQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.InstanceHealth + */ +export function runtimeServiceInstanceHealth( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.instanceHealth( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceInstanceHealthQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "instanceHealth", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceInstanceHealthQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceInstanceHealthQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceInstanceHealth(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceInstanceHealth( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceInstanceHealthQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListInstances + */ +export function runtimeServiceListInstances( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listInstances( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListInstancesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listInstances", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListInstancesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListInstancesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListInstances(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListInstances( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListInstancesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetInstance + */ +export function runtimeServiceGetInstance( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getInstance( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetInstanceQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "getInstance", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceGetInstanceQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetInstanceQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetInstance(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetInstance( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetInstanceQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListFiles + */ +export function runtimeServiceListFiles( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listFiles( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListFilesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "listFiles", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceListFilesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListFilesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListFiles(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListFiles( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListFilesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetFile + */ +export function runtimeServiceGetFile( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getFile( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetFileQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "getFile", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceGetFileQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetFileQueryKey(client.instanceId, request); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetFile(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetFile( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetFileQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListExamples + */ +export function runtimeServiceListExamples( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listExamples( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListExamplesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "listExamples", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceListExamplesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListExamplesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListExamples(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListExamples( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListExamplesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.QueryResolver + */ +export function runtimeServiceQueryResolver( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.queryResolver( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceQueryResolverQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "queryResolver", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceQueryResolverQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceQueryResolverQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceQueryResolver(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceQueryResolver( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceQueryResolverQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetLogs + */ +export function runtimeServiceGetLogs( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getLogs( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetLogsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "getLogs", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceGetLogsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetLogsQueryKey(client.instanceId, request); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetLogs(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetLogs( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetLogsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListResources + */ +export function runtimeServiceListResources( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listResources( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListResourcesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listResources", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListResourcesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListResourcesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListResources(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListResources( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListResourcesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetResource + */ +export function runtimeServiceGetResource( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getResource( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetResourceQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "getResource", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceGetResourceQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetResourceQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetResource(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetResource( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetResourceQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetExplore + */ +export function runtimeServiceGetExplore( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getExplore( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetExploreQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "getExplore", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceGetExploreQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetExploreQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetExplore(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetExplore( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetExploreQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetModelPartitions + */ +export function runtimeServiceGetModelPartitions( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getModelPartitions( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetModelPartitionsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "getModelPartitions", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceGetModelPartitionsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetModelPartitionsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetModelPartitions(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetModelPartitions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetModelPartitionsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListConnectorDrivers + */ +export function runtimeServiceListConnectorDrivers( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listConnectorDrivers( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListConnectorDriversQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listConnectorDrivers", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListConnectorDriversQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListConnectorDriversQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListConnectorDrivers(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListConnectorDrivers( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListConnectorDriversQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.AnalyzeConnectors + */ +export function runtimeServiceAnalyzeConnectors( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.analyzeConnectors( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceAnalyzeConnectorsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "analyzeConnectors", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceAnalyzeConnectorsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceAnalyzeConnectorsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceAnalyzeConnectors(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceAnalyzeConnectors( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceAnalyzeConnectorsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListNotifierConnectors + */ +export function runtimeServiceListNotifierConnectors( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listNotifierConnectors( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListNotifierConnectorsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listNotifierConnectors", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListNotifierConnectorsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListNotifierConnectorsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListNotifierConnectors(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListNotifierConnectors( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListNotifierConnectorsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListConversations + */ +export function runtimeServiceListConversations( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listConversations( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListConversationsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listConversations", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListConversationsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListConversationsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListConversations(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListConversations( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListConversationsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.GetConversation + */ +export function runtimeServiceGetConversation( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.getConversation( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceGetConversationQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "getConversation", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceGetConversationQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceGetConversationQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceGetConversation(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceGetConversation( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceGetConversationQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListTools + */ +export function runtimeServiceListTools( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listTools( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListToolsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "listTools", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceListToolsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListToolsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListTools(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListTools( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListToolsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.IssueDevJWT + */ +export function runtimeServiceIssueDevJWT( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.issueDevJWT( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceIssueDevJWTQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return ["RuntimeService", "issueDevJWT", instanceId, request ?? {}] as const; +} + +export function getRuntimeServiceIssueDevJWTQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceIssueDevJWTQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceIssueDevJWT(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceIssueDevJWT( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceIssueDevJWTQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.AnalyzeVariables + */ +export function runtimeServiceAnalyzeVariables( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.analyzeVariables( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceAnalyzeVariablesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "analyzeVariables", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceAnalyzeVariablesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceAnalyzeVariablesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceAnalyzeVariables(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceAnalyzeVariables( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceAnalyzeVariablesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListGitCommits + */ +export function runtimeServiceListGitCommits( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listGitCommits( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListGitCommitsQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listGitCommits", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListGitCommitsQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListGitCommitsQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListGitCommits(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListGitCommits( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListGitCommitsQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call: RuntimeService.ListGitBranches + */ +export function runtimeServiceListGitBranches( + client: RuntimeClient, + request: PartialMessage>, + options?: { signal?: AbortSignal }, +): Promise { + return client.runtimeService.listGitBranches( + { instanceId: client.instanceId, ...request }, + { signal: options?.signal }, + ); +} + +export function getRuntimeServiceListGitBranchesQueryKey( + instanceId: string, + request?: PartialMessage>, +): QueryKey { + return [ + "RuntimeService", + "listGitBranches", + instanceId, + request ?? {}, + ] as const; +} + +export function getRuntimeServiceListGitBranchesQueryOptions( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, +): CreateQueryOptions & { queryKey: QueryKey } { + const queryKey = getRuntimeServiceListGitBranchesQueryKey( + client.instanceId, + request, + ); + const queryFn: QueryFunction = ({ signal }) => + runtimeServiceListGitBranches(client, request, { signal }); + return { + queryKey, + queryFn, + enabled: !!client.instanceId, + ...options?.query, + }; +} + +export function createRuntimeServiceListGitBranches( + client: RuntimeClient, + request: PartialMessage>, + options?: { + query?: Partial>; + }, + queryClient?: QueryClient, +): CreateQueryResult { + const queryOptions = getRuntimeServiceListGitBranchesQueryOptions( + client, + request, + options, + ); + return createQuery(queryOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.CreateInstance + */ +export function runtimeServiceCreateInstance( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.createInstance({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceCreateInstanceMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CreateInstanceResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + CreateInstanceResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceCreateInstance(client, request), + ...options, + }; +} + +export function createRuntimeServiceCreateInstanceMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CreateInstanceResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + CreateInstanceResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceCreateInstanceMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.EditInstance + */ +export function runtimeServiceEditInstance( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.editInstance({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceEditInstanceMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + EditInstanceResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + EditInstanceResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceEditInstance(client, request), + ...options, + }; +} + +export function createRuntimeServiceEditInstanceMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + EditInstanceResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + EditInstanceResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceEditInstanceMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.DeleteInstance + */ +export function runtimeServiceDeleteInstance( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.deleteInstance({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceDeleteInstanceMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + DeleteInstanceResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + DeleteInstanceResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceDeleteInstance(client, request), + ...options, + }; +} + +export function createRuntimeServiceDeleteInstanceMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + DeleteInstanceResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + DeleteInstanceResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceDeleteInstanceMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.ReloadConfig + */ +export function runtimeServiceReloadConfig( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.reloadConfig({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceReloadConfigMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ReloadConfigResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + ReloadConfigResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceReloadConfig(client, request), + ...options, + }; +} + +export function createRuntimeServiceReloadConfigMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ReloadConfigResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + ReloadConfigResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceReloadConfigMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.PutFile + */ +export function runtimeServicePutFile( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.putFile({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServicePutFileMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + PutFileResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + PutFileResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServicePutFile(client, request), + ...options, + }; +} + +export function createRuntimeServicePutFileMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + PutFileResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + PutFileResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServicePutFileMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.CreateDirectory + */ +export function runtimeServiceCreateDirectory( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.createDirectory({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceCreateDirectoryMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CreateDirectoryResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + CreateDirectoryResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceCreateDirectory(client, request), + ...options, + }; +} + +export function createRuntimeServiceCreateDirectoryMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CreateDirectoryResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + CreateDirectoryResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceCreateDirectoryMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.DeleteFile + */ +export function runtimeServiceDeleteFile( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.deleteFile({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceDeleteFileMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + DeleteFileResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + DeleteFileResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceDeleteFile(client, request), + ...options, + }; +} + +export function createRuntimeServiceDeleteFileMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + DeleteFileResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + DeleteFileResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceDeleteFileMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.RenameFile + */ +export function runtimeServiceRenameFile( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.renameFile({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceRenameFileMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + RenameFileResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + RenameFileResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceRenameFile(client, request), + ...options, + }; +} + +export function createRuntimeServiceRenameFileMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + RenameFileResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + RenameFileResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceRenameFileMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.UnpackExample + */ +export function runtimeServiceUnpackExample( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.unpackExample({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceUnpackExampleMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + UnpackExampleResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + UnpackExampleResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceUnpackExample(client, request), + ...options, + }; +} + +export function createRuntimeServiceUnpackExampleMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + UnpackExampleResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + UnpackExampleResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceUnpackExampleMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.UnpackEmpty + */ +export function runtimeServiceUnpackEmpty( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.unpackEmpty({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceUnpackEmptyMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + UnpackEmptyResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + UnpackEmptyResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceUnpackEmpty(client, request), + ...options, + }; +} + +export function createRuntimeServiceUnpackEmptyMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + UnpackEmptyResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + UnpackEmptyResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceUnpackEmptyMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GenerateMetricsViewFile + */ +export function runtimeServiceGenerateMetricsViewFile( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.generateMetricsViewFile({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGenerateMetricsViewFileMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateMetricsViewFileResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GenerateMetricsViewFileResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => + runtimeServiceGenerateMetricsViewFile(client, request), + ...options, + }; +} + +export function createRuntimeServiceGenerateMetricsViewFileMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateMetricsViewFileResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GenerateMetricsViewFileResponse, + unknown, + PartialMessage> +> { + const mutationOptions = + getRuntimeServiceGenerateMetricsViewFileMutationOptions(client, options); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GenerateCanvasFile + */ +export function runtimeServiceGenerateCanvasFile( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.generateCanvasFile({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGenerateCanvasFileMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateCanvasFileResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GenerateCanvasFileResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGenerateCanvasFile(client, request), + ...options, + }; +} + +export function createRuntimeServiceGenerateCanvasFileMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateCanvasFileResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GenerateCanvasFileResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGenerateCanvasFileMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GenerateResolver + */ +export function runtimeServiceGenerateResolver( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.generateResolver({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGenerateResolverMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateResolverResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GenerateResolverResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGenerateResolver(client, request), + ...options, + }; +} + +export function createRuntimeServiceGenerateResolverMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateResolverResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GenerateResolverResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGenerateResolverMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GenerateRenderer + */ +export function runtimeServiceGenerateRenderer( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.generateRenderer({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGenerateRendererMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateRendererResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GenerateRendererResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGenerateRenderer(client, request), + ...options, + }; +} + +export function createRuntimeServiceGenerateRendererMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GenerateRendererResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GenerateRendererResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGenerateRendererMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.CreateTrigger + */ +export function runtimeServiceCreateTrigger( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.createTrigger({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceCreateTriggerMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CreateTriggerResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + CreateTriggerResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceCreateTrigger(client, request), + ...options, + }; +} + +export function createRuntimeServiceCreateTriggerMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CreateTriggerResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + CreateTriggerResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceCreateTriggerMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.ShareConversation + */ +export function runtimeServiceShareConversation( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.shareConversation({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceShareConversationMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ShareConversationResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + ShareConversationResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceShareConversation(client, request), + ...options, + }; +} + +export function createRuntimeServiceShareConversationMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ShareConversationResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + ShareConversationResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceShareConversationMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.ForkConversation + */ +export function runtimeServiceForkConversation( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.forkConversation({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceForkConversationMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ForkConversationResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + ForkConversationResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceForkConversation(client, request), + ...options, + }; +} + +export function createRuntimeServiceForkConversationMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + ForkConversationResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + ForkConversationResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceForkConversationMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.Complete + */ +export function runtimeServiceComplete( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.complete({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceCompleteMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CompleteResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + CompleteResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceComplete(client, request), + ...options, + }; +} + +export function createRuntimeServiceCompleteMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + CompleteResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + CompleteResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceCompleteMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GitStatus + */ +export function runtimeServiceGitStatus( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.gitStatus({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGitStatusMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitStatusResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GitStatusResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGitStatus(client, request), + ...options, + }; +} + +export function createRuntimeServiceGitStatusMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitStatusResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GitStatusResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGitStatusMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GitCommit + */ +export function runtimeServiceGitCommit( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.gitCommit({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGitCommitMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitCommitResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GitCommitResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGitCommit(client, request), + ...options, + }; +} + +export function createRuntimeServiceGitCommitMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitCommitResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GitCommitResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGitCommitMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.RestoreGitCommit + */ +export function runtimeServiceRestoreGitCommit( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.restoreGitCommit({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceRestoreGitCommitMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + RestoreGitCommitResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + RestoreGitCommitResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceRestoreGitCommit(client, request), + ...options, + }; +} + +export function createRuntimeServiceRestoreGitCommitMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + RestoreGitCommitResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + RestoreGitCommitResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceRestoreGitCommitMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GitMergeToBranch + */ +export function runtimeServiceGitMergeToBranch( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.gitMergeToBranch({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGitMergeToBranchMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitMergeToBranchResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GitMergeToBranchResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGitMergeToBranch(client, request), + ...options, + }; +} + +export function createRuntimeServiceGitMergeToBranchMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitMergeToBranchResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GitMergeToBranchResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGitMergeToBranchMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GitSwitchBranch + */ +export function runtimeServiceGitSwitchBranch( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.gitSwitchBranch({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGitSwitchBranchMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitSwitchBranchResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GitSwitchBranchResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGitSwitchBranch(client, request), + ...options, + }; +} + +export function createRuntimeServiceGitSwitchBranchMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitSwitchBranchResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GitSwitchBranchResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGitSwitchBranchMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GitPull + */ +export function runtimeServiceGitPull( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.gitPull({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGitPullMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitPullResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GitPullResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGitPull(client, request), + ...options, + }; +} + +export function createRuntimeServiceGitPullMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitPullResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GitPullResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGitPullMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} + +/** + * Raw RPC call (mutation): RuntimeService.GitPush + */ +export function runtimeServiceGitPush( + client: RuntimeClient, + request: PartialMessage>, +): Promise { + return client.runtimeService.gitPush({ + instanceId: client.instanceId, + ...request, + }); +} + +export function getRuntimeServiceGitPushMutationOptions( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitPushResponse, + unknown, + PartialMessage> + > + >, +): CreateMutationOptions< + GitPushResponse, + unknown, + PartialMessage> +> { + return { + mutationFn: (request) => runtimeServiceGitPush(client, request), + ...options, + }; +} + +export function createRuntimeServiceGitPushMutation( + client: RuntimeClient, + options?: Partial< + CreateMutationOptions< + GitPushResponse, + unknown, + PartialMessage> + > + >, + queryClient?: QueryClient, +): CreateMutationResult< + GitPushResponse, + unknown, + PartialMessage> +> { + const mutationOptions = getRuntimeServiceGitPushMutationOptions( + client, + options, + ); + return createMutation(mutationOptions, queryClient); +} From 8cdc22d856d6f71a52e11afded4621e68f5665d8 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 11:39:27 +0300 Subject: [PATCH 03/27] feat: update invalidation and query matching for dual key formats (Phase 3) Update cache invalidation and query matchers to support both the old URL-path query key format ("/v1/instances/{id}/...") and the new service/method format ("QueryService", "metricsViewAggregation", instanceId, request). This enables incremental migration: as consumers switch from Orval hooks to v2 generated hooks, both key formats are correctly matched for invalidation, profiling, metrics view, and component queries. --- web-common/src/runtime-client/invalidation.ts | 117 ++++++++++++++++-- .../src/runtime-client/query-matcher.ts | 106 +++++++++++++++- 2 files changed, 206 insertions(+), 17 deletions(-) diff --git a/web-common/src/runtime-client/invalidation.ts b/web-common/src/runtime-client/invalidation.ts index 0fe6eca83d1..2a02c660309 100644 --- a/web-common/src/runtime-client/invalidation.ts +++ b/web-common/src/runtime-client/invalidation.ts @@ -6,16 +6,78 @@ import { } from "@rilldata/web-common/runtime-client/query-matcher"; import type { Query, QueryClient } from "@tanstack/svelte-query"; -// invalidation helpers +// --- Query key format helpers --- +// During migration, queries may use either the old URL-path format +// (e.g. ["/v1/instances/{id}/..."]) or the new service/method format +// (e.g. ["QueryService", "metricsViewAggregation", instanceId, request]). + +/** Matches both old and new key formats for a given instanceId. */ +function isRuntimeQueryForInstance( + queryKey: readonly unknown[], + instanceId: string, +): boolean { + // New format: [ServiceName, methodName, instanceId, request] + if (queryKey.length >= 3 && queryKey[2] === instanceId) { + const svc = queryKey[0]; + return ( + svc === "QueryService" || + svc === "RuntimeService" || + svc === "ConnectorService" + ); + } + // Old format: ["/v1/instances/{instanceId}/..."] + return ( + typeof queryKey[0] === "string" && + queryKey[0].startsWith(`/v1/instances/${instanceId}`) + ); +} + +/** Checks if a query key matches a metrics view query (by name). */ +function isMetricsViewQueryKey( + queryKey: readonly unknown[], + metricsViewName: string, +): boolean { + // New format: ["QueryService", "metricsView*", instanceId, { metricsViewName, ... }] + if ( + queryKey[0] === "QueryService" && + typeof queryKey[1] === "string" && + queryKey[1].startsWith("metricsView") + ) { + const request = queryKey[3]; + return ( + typeof request === "object" && + request !== null && + (request as Record).metricsViewName === metricsViewName + ); + } + return false; +} + +/** Checks if a query key matches a component resolve query (by name). */ +function isComponentResolveKey( + queryKey: readonly unknown[], + componentName: string, +): boolean { + // New format: ["QueryService", "resolveComponent", instanceId, { component: name }] + if (queryKey[0] === "QueryService" && queryKey[1] === "resolveComponent") { + const request = queryKey[3]; + return ( + typeof request === "object" && + request !== null && + (request as Record).component === componentName + ); + } + return false; +} + +// --- invalidation helpers --- export function invalidateRuntimeQueries( queryClient: QueryClient, instanceId: string, ) { return queryClient.resetQueries({ - predicate: (query) => - typeof query.queryKey[0] === "string" && - query.queryKey[0].startsWith(`/v1/instances/${instanceId}`), + predicate: (query) => isRuntimeQueryForInstance(query.queryKey, instanceId), }); } @@ -25,10 +87,14 @@ export function isMetricsViewQuery(queryHash: string, metricsViewName: string) { ); return r.test(queryHash); } + export function invalidationForMetricsViewData( query: Query, metricsViewName: string, ) { + // New key format + if (isMetricsViewQueryKey(query.queryKey, metricsViewName)) return true; + // Old key format return ( typeof query.queryKey[0] === "string" && isMetricsViewQuery(query.queryKey[0], metricsViewName) @@ -71,9 +137,21 @@ export async function invalidateAllMetricsViews( // Second, refetch the resource entries (which returns the available dimensions and measures) await queryClient.refetchQueries({ type: "active", - predicate: (query) => - typeof query.queryKey[0] === "string" && - query.queryKey[0].startsWith(`/v1/instances/${instanceId}/resource`), + predicate: (query) => { + const key = query.queryKey; + // New format: ["RuntimeService", "getResource" or "listResources", instanceId, ...] + if ( + key[0] === "RuntimeService" && + (key[1] === "getResource" || key[1] === "listResources") && + key[2] === instanceId + ) + return true; + // Old format + return ( + typeof key[0] === "string" && + key[0].startsWith(`/v1/instances/${instanceId}/resource`) + ); + }, }); // Third, reset queries for all metrics views. This will cause the active queries to refetch. @@ -81,11 +159,20 @@ export async function invalidateAllMetricsViews( // nor `queryClient.invalidateQueries` were working as expected. Perhaps there's a race condition somewhere. void queryClient.resetQueries({ predicate: (query: Query) => { + const key = query.queryKey; + // New format: ["QueryService", "metricsView*", instanceId, ...] + if ( + key[0] === "QueryService" && + typeof key[1] === "string" && + key[1].startsWith("metricsView") && + key[2] === instanceId + ) { + return true; + } + // Old format return ( - typeof query.queryKey[0] === "string" && - query.queryKey[0].startsWith( - `/v1/instances/${instanceId}/queries/metrics-views`, - ) + typeof key[0] === "string" && + key[0].startsWith(`/v1/instances/${instanceId}/queries/metrics-views`) ); }, }); @@ -134,14 +221,18 @@ export async function invalidateComponentData( `/v1/instances/[a-zA-Z0-9-]+/queries/components/${name}/resolve`, ); + const matchesComponent = (query: Query) => + isComponentResolveKey(query.queryKey, name) || + componentAPIRegex.test(query.queryHash); + queryClient.removeQueries({ - predicate: (query) => componentAPIRegex.test(query.queryHash), + predicate: matchesComponent, type: "inactive", }); if (failed) return; return queryClient.resetQueries({ - predicate: (query) => componentAPIRegex.test(query.queryHash), + predicate: matchesComponent, type: "active", }); } diff --git a/web-common/src/runtime-client/query-matcher.ts b/web-common/src/runtime-client/query-matcher.ts index f2d9425f7eb..b9f5aeb92f3 100644 --- a/web-common/src/runtime-client/query-matcher.ts +++ b/web-common/src/runtime-client/query-matcher.ts @@ -2,12 +2,34 @@ import type { Query } from "@tanstack/query-core"; import { ResourceKind } from "../features/entity-management/resource-selectors"; export function isRuntimeQuery(query: Query): boolean { - const [apiPath] = query.queryKey as string[]; - return apiPath.startsWith("/v1/instances/"); + const key = query.queryKey; + // New format: [ServiceName, methodName, instanceId, request] + const svc = key[0]; + if ( + svc === "QueryService" || + svc === "RuntimeService" || + svc === "ConnectorService" + ) { + return true; + } + // Old format: ["/v1/instances/..."] + return typeof svc === "string" && svc.startsWith("/v1/instances/"); } export function isGetResourceMetricsViewQuery(query: Query): boolean { - const [apiPath, queryParams] = query.queryKey; // Renamed for clarity + const key = query.queryKey; + // New format: ["RuntimeService", "getResource", instanceId, { "name.kind": ... }] + if (key[0] === "RuntimeService" && key[1] === "getResource") { + const request = key[3]; + return ( + typeof request === "object" && + request !== null && + (request as Record)["name.kind"] === + ResourceKind.MetricsView + ); + } + // Old format + const [apiPath, queryParams] = key; if ( typeof apiPath !== "string" || typeof queryParams !== "object" || @@ -16,7 +38,8 @@ export function isGetResourceMetricsViewQuery(query: Query): boolean { return false; return ( apiPath.startsWith("/v1/instances/") && - queryParams["name.kind"] === ResourceKind.MetricsView + (queryParams as Record)["name.kind"] === + ResourceKind.MetricsView ); } @@ -42,6 +65,35 @@ export enum QueryRequestType { TableRows = "rows", } +// New format method names that correspond to profiling queries +const profilingMethods = new Set([ + "columnRollupInterval", + "columnTopK", + "columnNullCount", + "columnDescriptiveStatistics", + "columnTimeGrain", + "columnNumericHistogram", + "columnRugHistogram", + "columnTimeRange", + "columnCardinality", + "columnTimeSeries", + "tableCardinality", + "tableColumns", + "tableRows", +]); + +const tableProfilingMethods = new Set([ + "tableCardinality", + "tableColumns", + "tableRows", +]); + +/** Extract the table name from a new-format profiling query's request object */ +function getTableNameFromRequest(request: unknown): string | undefined { + if (typeof request !== "object" || request === null) return undefined; + return (request as Record).tableName as string | undefined; +} + const TableProfilingQuery: Partial> = { [QueryRequestType.TableCardinality]: true, [QueryRequestType.TableColumns]: true, @@ -58,7 +110,33 @@ function isOlapQuery(queryHash: string, name: string) { ); } +function isNewFormatOlapQuery(query: Query, name: string): boolean { + const key = query.queryKey; + if ( + key[0] === "ConnectorService" && + (key[1] === "oLAPGetTable" || key[1] === "oLAPListTables") + ) { + const request = key[3]; + return ( + typeof request === "object" && + request !== null && + (request as Record).table === name + ); + } + return false; +} + export function isProfilingQuery(query: Query, name: string): boolean { + // New format + if ( + query.queryKey[0] === "QueryService" && + profilingMethods.has(query.queryKey[1] as string) + ) { + const tableName = getTableNameFromRequest(query.queryKey[3]); + return tableName === name; + } + if (isNewFormatOlapQuery(query, name)) return true; + // Old format const queryExtractorMatch = ProfilingQueryExtractor.exec(query.queryHash); if (!queryExtractorMatch) return isOlapQuery(query.queryHash, name); @@ -67,6 +145,16 @@ export function isProfilingQuery(query: Query, name: string): boolean { } export function isTableProfilingQuery(query: Query, name: string): boolean { + // New format + if ( + query.queryKey[0] === "QueryService" && + tableProfilingMethods.has(query.queryKey[1] as string) + ) { + const tableName = getTableNameFromRequest(query.queryKey[3]); + return tableName === name; + } + if (isNewFormatOlapQuery(query, name)) return true; + // Old format const queryExtractorMatch = ProfilingQueryExtractor.exec(query.queryHash); if (!queryExtractorMatch) return isOlapQuery(query.queryHash, name); @@ -75,6 +163,16 @@ export function isTableProfilingQuery(query: Query, name: string): boolean { } export function isColumnProfilingQuery(query: Query, name: string) { + // New format + if ( + query.queryKey[0] === "QueryService" && + profilingMethods.has(query.queryKey[1] as string) && + !tableProfilingMethods.has(query.queryKey[1] as string) + ) { + const tableName = getTableNameFromRequest(query.queryKey[3]); + return tableName === name; + } + // Old format const queryExtractorMatch = ProfilingQueryExtractor.exec(query.queryHash); if (!queryExtractorMatch) return false; From 3aaa80dc7f5b9720149d25ab090705173a6b8fdf Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 12:07:30 +0300 Subject: [PATCH 04/27] fix: resolve type errors in generated query hooks The generator was producing `PartialMessage>`, but `Omit<...>` strips the `Message` constraint that `PartialMessage` requires. Fix by swapping to `Omit, "instanceId">`. Also detect at generation time whether each request type actually has an `instanceId` field; methods like `ListInstances` and `IssueDevJWT` don't have it and should not receive auto-injection. --- web-common/scripts/generate-query-hooks.ts | 49 +- .../v2/gen/connector-service.ts | 56 +- .../runtime-client/v2/gen/query-service.ts | 278 +++++----- .../runtime-client/v2/gen/runtime-service.ts | 480 +++++++++--------- 4 files changed, 440 insertions(+), 423 deletions(-) diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts index d5667e573fe..cd0d86d5450 100644 --- a/web-common/scripts/generate-query-hooks.ts +++ b/web-common/scripts/generate-query-hooks.ts @@ -28,7 +28,8 @@ interface ServiceDef { string, { name: string; - I: { typeName: string }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + I: { typeName: string; new (): any }; O: { typeName: string }; kind: MethodKind; } @@ -45,6 +46,8 @@ interface MethodInfo { /** Response message type name (e.g. "MetricsViewAggregationResponse") */ outputType: string; classification: MethodClassification; + /** Whether the request type has an instanceId field */ + hasInstanceId: boolean; } // --- Helpers --- @@ -102,12 +105,15 @@ function extractMethods(service: ServiceDef): MethodInfo[] { const classification = classifyMethod(serviceName, key); if (classification === "skip") continue; + const hasInstanceId = "instanceId" in new method.I(); + methods.push({ methodKey: key, methodName: method.name, inputType: extractShortName(method.I.typeName), outputType: extractShortName(method.O.typeName), classification, + hasInstanceId, }); } @@ -171,14 +177,19 @@ function generateServiceFile(service: ServiceDef): string { // --- Query methods --- for (const m of queryMethods) { - const fnPrefix = `${serviceClientProp.charAt(0).toLowerCase() + serviceClientProp.slice(1)}${pascalCase(m.methodKey)}`; - // Use the same naming convention: serviceName + methodName (e.g. queryServiceMetricsViewAggregation) - const fullName = `${serviceClientProp}${pascalCase(m.methodKey)}`; const keyFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}QueryKey`; const optsFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}QueryOptions`; const hookName = `create${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}`; + // Request type: omit instanceId when the proto message has it (client injects it) + const requestType = m.hasInstanceId + ? `Omit, "instanceId">` + : `PartialMessage<${m.inputType}>`; + const requestSpread = m.hasInstanceId + ? `{ instanceId: client.instanceId, ...request }` + : `request`; + // Tier 1: Raw function lines.push( `/**`, @@ -186,11 +197,11 @@ function generateServiceFile(service: ServiceDef): string { ` */`, `export function ${fullName}(`, ` client: RuntimeClient,`, - ` request: PartialMessage>,`, + ` request: ${requestType},`, ` options?: { signal?: AbortSignal },`, `): Promise<${m.outputType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, - ` { instanceId: client.instanceId, ...request },`, + ` ${requestSpread},`, ` { signal: options?.signal },`, ` );`, `}`, @@ -201,7 +212,7 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${keyFnName}(`, ` instanceId: string,`, - ` request?: PartialMessage>,`, + ` request?: ${requestType},`, `): QueryKey {`, ` return ["${serviceName}", "${m.methodKey}", instanceId, request ?? {}] as const;`, `}`, @@ -212,7 +223,7 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${optsFnName}(`, ` client: RuntimeClient,`, - ` request: PartialMessage>,`, + ` request: ${requestType},`, ` options?: {`, ` query?: Partial>;`, ` },`, @@ -234,7 +245,7 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${hookName}(`, ` client: RuntimeClient,`, - ` request: PartialMessage>,`, + ` request: ${requestType},`, ` options?: {`, ` query?: Partial>;`, ` },`, @@ -253,6 +264,14 @@ function generateServiceFile(service: ServiceDef): string { const mutOptsFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}MutationOptions`; const mutHookName = `create${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}Mutation`; + // Request type: omit instanceId when the proto message has it + const requestType = m.hasInstanceId + ? `Omit, "instanceId">` + : `PartialMessage<${m.inputType}>`; + const requestSpread = m.hasInstanceId + ? `{ instanceId: client.instanceId, ...request }` + : `request`; + // Raw function lines.push( `/**`, @@ -260,10 +279,10 @@ function generateServiceFile(service: ServiceDef): string { ` */`, `export function ${fullName}(`, ` client: RuntimeClient,`, - ` request: PartialMessage>,`, + ` request: ${requestType},`, `): Promise<${m.outputType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, - ` { instanceId: client.instanceId, ...request },`, + ` ${requestSpread},`, ` );`, `}`, ``, @@ -273,8 +292,8 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${mutOptsFnName}(`, ` client: RuntimeClient,`, - ` options?: Partial>>>,`, - `): CreateMutationOptions<${m.outputType}, unknown, PartialMessage>> {`, + ` options?: Partial>,`, + `): CreateMutationOptions<${m.outputType}, unknown, ${requestType}> {`, ` return {`, ` mutationFn: (request) => ${fullName}(client, request),`, ` ...options,`, @@ -287,9 +306,9 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${mutHookName}(`, ` client: RuntimeClient,`, - ` options?: Partial>>>,`, + ` options?: Partial>,`, ` queryClient?: QueryClient,`, - `): CreateMutationResult<${m.outputType}, unknown, PartialMessage>> {`, + `): CreateMutationResult<${m.outputType}, unknown, ${requestType}> {`, ` const mutationOptions = ${mutOptsFnName}(client, options);`, ` return createMutation(mutationOptions, queryClient);`, `}`, diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts index f8006491856..ab996a238f9 100644 --- a/web-common/src/runtime-client/v2/gen/connector-service.ts +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -35,7 +35,7 @@ import { */ export function connectorServiceListBuckets( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.listBuckets( @@ -46,7 +46,7 @@ export function connectorServiceListBuckets( export function getConnectorServiceListBucketsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "ConnectorService", @@ -58,7 +58,7 @@ export function getConnectorServiceListBucketsQueryKey( export function getConnectorServiceListBucketsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -79,7 +79,7 @@ export function getConnectorServiceListBucketsQueryOptions( export function createConnectorServiceListBuckets( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -98,7 +98,7 @@ export function createConnectorServiceListBuckets( */ export function connectorServiceListObjects( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.listObjects( @@ -109,7 +109,7 @@ export function connectorServiceListObjects( export function getConnectorServiceListObjectsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "ConnectorService", @@ -121,7 +121,7 @@ export function getConnectorServiceListObjectsQueryKey( export function getConnectorServiceListObjectsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -142,7 +142,7 @@ export function getConnectorServiceListObjectsQueryOptions( export function createConnectorServiceListObjects( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -161,7 +161,7 @@ export function createConnectorServiceListObjects( */ export function connectorServiceOLAPListTables( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.oLAPListTables( @@ -172,7 +172,7 @@ export function connectorServiceOLAPListTables( export function getConnectorServiceOLAPListTablesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "ConnectorService", @@ -184,7 +184,7 @@ export function getConnectorServiceOLAPListTablesQueryKey( export function getConnectorServiceOLAPListTablesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -205,7 +205,7 @@ export function getConnectorServiceOLAPListTablesQueryOptions( export function createConnectorServiceOLAPListTables( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -224,7 +224,7 @@ export function createConnectorServiceOLAPListTables( */ export function connectorServiceOLAPGetTable( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.oLAPGetTable( @@ -235,7 +235,7 @@ export function connectorServiceOLAPGetTable( export function getConnectorServiceOLAPGetTableQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "ConnectorService", @@ -247,7 +247,7 @@ export function getConnectorServiceOLAPGetTableQueryKey( export function getConnectorServiceOLAPGetTableQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -268,7 +268,7 @@ export function getConnectorServiceOLAPGetTableQueryOptions( export function createConnectorServiceOLAPGetTable( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -287,7 +287,7 @@ export function createConnectorServiceOLAPGetTable( */ export function connectorServiceListDatabaseSchemas( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.listDatabaseSchemas( @@ -298,7 +298,7 @@ export function connectorServiceListDatabaseSchemas( export function getConnectorServiceListDatabaseSchemasQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "ConnectorService", @@ -310,7 +310,7 @@ export function getConnectorServiceListDatabaseSchemasQueryKey( export function getConnectorServiceListDatabaseSchemasQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -331,7 +331,7 @@ export function getConnectorServiceListDatabaseSchemasQueryOptions( export function createConnectorServiceListDatabaseSchemas( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -350,7 +350,7 @@ export function createConnectorServiceListDatabaseSchemas( */ export function connectorServiceListTables( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.listTables( @@ -361,14 +361,14 @@ export function connectorServiceListTables( export function getConnectorServiceListTablesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["ConnectorService", "listTables", instanceId, request ?? {}] as const; } export function getConnectorServiceListTablesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -389,7 +389,7 @@ export function getConnectorServiceListTablesQueryOptions( export function createConnectorServiceListTables( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -408,7 +408,7 @@ export function createConnectorServiceListTables( */ export function connectorServiceGetTable( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.connectorService.getTable( @@ -419,14 +419,14 @@ export function connectorServiceGetTable( export function getConnectorServiceGetTableQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["ConnectorService", "getTable", instanceId, request ?? {}] as const; } export function getConnectorServiceGetTableQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -447,7 +447,7 @@ export function getConnectorServiceGetTableQueryOptions( export function createConnectorServiceGetTable( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts index 0945495cf0f..3370d890d54 100644 --- a/web-common/src/runtime-client/v2/gen/query-service.ts +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -83,7 +83,7 @@ import { */ export function queryServiceMetricsViewAggregation( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewAggregation( @@ -94,7 +94,7 @@ export function queryServiceMetricsViewAggregation( export function getQueryServiceMetricsViewAggregationQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -106,7 +106,7 @@ export function getQueryServiceMetricsViewAggregationQueryKey( export function getQueryServiceMetricsViewAggregationQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -127,7 +127,7 @@ export function getQueryServiceMetricsViewAggregationQueryOptions( export function createQueryServiceMetricsViewAggregation( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -146,7 +146,7 @@ export function createQueryServiceMetricsViewAggregation( */ export function queryServiceMetricsViewToplist( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewToplist( @@ -157,7 +157,7 @@ export function queryServiceMetricsViewToplist( export function getQueryServiceMetricsViewToplistQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -169,7 +169,7 @@ export function getQueryServiceMetricsViewToplistQueryKey( export function getQueryServiceMetricsViewToplistQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -190,7 +190,7 @@ export function getQueryServiceMetricsViewToplistQueryOptions( export function createQueryServiceMetricsViewToplist( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -209,7 +209,7 @@ export function createQueryServiceMetricsViewToplist( */ export function queryServiceMetricsViewComparison( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewComparison( @@ -220,7 +220,7 @@ export function queryServiceMetricsViewComparison( export function getQueryServiceMetricsViewComparisonQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -232,7 +232,7 @@ export function getQueryServiceMetricsViewComparisonQueryKey( export function getQueryServiceMetricsViewComparisonQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -253,7 +253,7 @@ export function getQueryServiceMetricsViewComparisonQueryOptions( export function createQueryServiceMetricsViewComparison( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -272,7 +272,7 @@ export function createQueryServiceMetricsViewComparison( */ export function queryServiceMetricsViewTimeSeries( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewTimeSeries( @@ -283,7 +283,7 @@ export function queryServiceMetricsViewTimeSeries( export function getQueryServiceMetricsViewTimeSeriesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -295,7 +295,7 @@ export function getQueryServiceMetricsViewTimeSeriesQueryKey( export function getQueryServiceMetricsViewTimeSeriesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -316,7 +316,7 @@ export function getQueryServiceMetricsViewTimeSeriesQueryOptions( export function createQueryServiceMetricsViewTimeSeries( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -335,7 +335,7 @@ export function createQueryServiceMetricsViewTimeSeries( */ export function queryServiceMetricsViewTotals( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewTotals( @@ -346,7 +346,7 @@ export function queryServiceMetricsViewTotals( export function getQueryServiceMetricsViewTotalsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -358,7 +358,7 @@ export function getQueryServiceMetricsViewTotalsQueryKey( export function getQueryServiceMetricsViewTotalsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -379,7 +379,7 @@ export function getQueryServiceMetricsViewTotalsQueryOptions( export function createQueryServiceMetricsViewTotals( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -398,7 +398,7 @@ export function createQueryServiceMetricsViewTotals( */ export function queryServiceMetricsViewRows( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewRows( @@ -409,7 +409,7 @@ export function queryServiceMetricsViewRows( export function getQueryServiceMetricsViewRowsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -421,7 +421,7 @@ export function getQueryServiceMetricsViewRowsQueryKey( export function getQueryServiceMetricsViewRowsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -442,7 +442,7 @@ export function getQueryServiceMetricsViewRowsQueryOptions( export function createQueryServiceMetricsViewRows( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -461,7 +461,7 @@ export function createQueryServiceMetricsViewRows( */ export function queryServiceMetricsViewTimeRange( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewTimeRange( @@ -472,7 +472,7 @@ export function queryServiceMetricsViewTimeRange( export function getQueryServiceMetricsViewTimeRangeQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -484,7 +484,7 @@ export function getQueryServiceMetricsViewTimeRangeQueryKey( export function getQueryServiceMetricsViewTimeRangeQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -505,7 +505,7 @@ export function getQueryServiceMetricsViewTimeRangeQueryOptions( export function createQueryServiceMetricsViewTimeRange( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -524,7 +524,7 @@ export function createQueryServiceMetricsViewTimeRange( */ export function queryServiceMetricsViewSchema( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewSchema( @@ -535,7 +535,7 @@ export function queryServiceMetricsViewSchema( export function getQueryServiceMetricsViewSchemaQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -547,7 +547,7 @@ export function getQueryServiceMetricsViewSchemaQueryKey( export function getQueryServiceMetricsViewSchemaQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -568,7 +568,7 @@ export function getQueryServiceMetricsViewSchemaQueryOptions( export function createQueryServiceMetricsViewSchema( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -587,7 +587,7 @@ export function createQueryServiceMetricsViewSchema( */ export function queryServiceMetricsViewSearch( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewSearch( @@ -598,7 +598,7 @@ export function queryServiceMetricsViewSearch( export function getQueryServiceMetricsViewSearchQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -610,7 +610,7 @@ export function getQueryServiceMetricsViewSearchQueryKey( export function getQueryServiceMetricsViewSearchQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -631,7 +631,7 @@ export function getQueryServiceMetricsViewSearchQueryOptions( export function createQueryServiceMetricsViewSearch( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -650,7 +650,7 @@ export function createQueryServiceMetricsViewSearch( */ export function queryServiceMetricsViewTimeRanges( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewTimeRanges( @@ -661,7 +661,7 @@ export function queryServiceMetricsViewTimeRanges( export function getQueryServiceMetricsViewTimeRangesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -673,7 +673,7 @@ export function getQueryServiceMetricsViewTimeRangesQueryKey( export function getQueryServiceMetricsViewTimeRangesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -694,7 +694,7 @@ export function getQueryServiceMetricsViewTimeRangesQueryOptions( export function createQueryServiceMetricsViewTimeRanges( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -713,7 +713,7 @@ export function createQueryServiceMetricsViewTimeRanges( */ export function queryServiceMetricsViewAnnotations( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.metricsViewAnnotations( @@ -724,7 +724,7 @@ export function queryServiceMetricsViewAnnotations( export function getQueryServiceMetricsViewAnnotationsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -736,7 +736,7 @@ export function getQueryServiceMetricsViewAnnotationsQueryKey( export function getQueryServiceMetricsViewAnnotationsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -757,7 +757,7 @@ export function getQueryServiceMetricsViewAnnotationsQueryOptions( export function createQueryServiceMetricsViewAnnotations( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -776,8 +776,9 @@ export function createQueryServiceMetricsViewAnnotations( */ export function queryServiceConvertExpressionToMetricsSQL( client: RuntimeClient, - request: PartialMessage< - Omit + request: Omit< + PartialMessage, + "instanceId" >, options?: { signal?: AbortSignal }, ): Promise { @@ -789,8 +790,9 @@ export function queryServiceConvertExpressionToMetricsSQL( export function getQueryServiceConvertExpressionToMetricsSQLQueryKey( instanceId: string, - request?: PartialMessage< - Omit + request?: Omit< + PartialMessage, + "instanceId" >, ): QueryKey { return [ @@ -803,8 +805,9 @@ export function getQueryServiceConvertExpressionToMetricsSQLQueryKey( export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( client: RuntimeClient, - request: PartialMessage< - Omit + request: Omit< + PartialMessage, + "instanceId" >, options?: { query?: Partial>; @@ -829,8 +832,9 @@ export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( export function createQueryServiceConvertExpressionToMetricsSQL( client: RuntimeClient, - request: PartialMessage< - Omit + request: Omit< + PartialMessage, + "instanceId" >, options?: { query?: Partial>; @@ -850,7 +854,7 @@ export function createQueryServiceConvertExpressionToMetricsSQL( */ export function queryServiceResolveCanvas( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.resolveCanvas( @@ -861,14 +865,14 @@ export function queryServiceResolveCanvas( export function getQueryServiceResolveCanvasQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["QueryService", "resolveCanvas", instanceId, request ?? {}] as const; } export function getQueryServiceResolveCanvasQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -889,7 +893,7 @@ export function getQueryServiceResolveCanvasQueryOptions( export function createQueryServiceResolveCanvas( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -908,7 +912,7 @@ export function createQueryServiceResolveCanvas( */ export function queryServiceResolveComponent( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.resolveComponent( @@ -919,7 +923,7 @@ export function queryServiceResolveComponent( export function getQueryServiceResolveComponentQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -931,7 +935,7 @@ export function getQueryServiceResolveComponentQueryKey( export function getQueryServiceResolveComponentQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -952,7 +956,7 @@ export function getQueryServiceResolveComponentQueryOptions( export function createQueryServiceResolveComponent( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -971,7 +975,7 @@ export function createQueryServiceResolveComponent( */ export function queryServiceResolveTemplatedString( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.resolveTemplatedString( @@ -982,7 +986,7 @@ export function queryServiceResolveTemplatedString( export function getQueryServiceResolveTemplatedStringQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -994,7 +998,7 @@ export function getQueryServiceResolveTemplatedStringQueryKey( export function getQueryServiceResolveTemplatedStringQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1015,7 +1019,7 @@ export function getQueryServiceResolveTemplatedStringQueryOptions( export function createQueryServiceResolveTemplatedString( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1034,7 +1038,7 @@ export function createQueryServiceResolveTemplatedString( */ export function queryServiceColumnRollupInterval( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnRollupInterval( @@ -1045,7 +1049,7 @@ export function queryServiceColumnRollupInterval( export function getQueryServiceColumnRollupIntervalQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1057,7 +1061,7 @@ export function getQueryServiceColumnRollupIntervalQueryKey( export function getQueryServiceColumnRollupIntervalQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1078,7 +1082,7 @@ export function getQueryServiceColumnRollupIntervalQueryOptions( export function createQueryServiceColumnRollupInterval( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1097,7 +1101,7 @@ export function createQueryServiceColumnRollupInterval( */ export function queryServiceColumnTopK( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnTopK( @@ -1108,14 +1112,14 @@ export function queryServiceColumnTopK( export function getQueryServiceColumnTopKQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["QueryService", "columnTopK", instanceId, request ?? {}] as const; } export function getQueryServiceColumnTopKQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1136,7 +1140,7 @@ export function getQueryServiceColumnTopKQueryOptions( export function createQueryServiceColumnTopK( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1155,7 +1159,7 @@ export function createQueryServiceColumnTopK( */ export function queryServiceColumnNullCount( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnNullCount( @@ -1166,7 +1170,7 @@ export function queryServiceColumnNullCount( export function getQueryServiceColumnNullCountQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1178,7 +1182,7 @@ export function getQueryServiceColumnNullCountQueryKey( export function getQueryServiceColumnNullCountQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1199,7 +1203,7 @@ export function getQueryServiceColumnNullCountQueryOptions( export function createQueryServiceColumnNullCount( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1218,8 +1222,9 @@ export function createQueryServiceColumnNullCount( */ export function queryServiceColumnDescriptiveStatistics( client: RuntimeClient, - request: PartialMessage< - Omit + request: Omit< + PartialMessage, + "instanceId" >, options?: { signal?: AbortSignal }, ): Promise { @@ -1231,8 +1236,9 @@ export function queryServiceColumnDescriptiveStatistics( export function getQueryServiceColumnDescriptiveStatisticsQueryKey( instanceId: string, - request?: PartialMessage< - Omit + request?: Omit< + PartialMessage, + "instanceId" >, ): QueryKey { return [ @@ -1245,8 +1251,9 @@ export function getQueryServiceColumnDescriptiveStatisticsQueryKey( export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( client: RuntimeClient, - request: PartialMessage< - Omit + request: Omit< + PartialMessage, + "instanceId" >, options?: { query?: Partial>; @@ -1271,8 +1278,9 @@ export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( export function createQueryServiceColumnDescriptiveStatistics( client: RuntimeClient, - request: PartialMessage< - Omit + request: Omit< + PartialMessage, + "instanceId" >, options?: { query?: Partial>; @@ -1292,7 +1300,7 @@ export function createQueryServiceColumnDescriptiveStatistics( */ export function queryServiceColumnTimeGrain( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnTimeGrain( @@ -1303,7 +1311,7 @@ export function queryServiceColumnTimeGrain( export function getQueryServiceColumnTimeGrainQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1315,7 +1323,7 @@ export function getQueryServiceColumnTimeGrainQueryKey( export function getQueryServiceColumnTimeGrainQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1336,7 +1344,7 @@ export function getQueryServiceColumnTimeGrainQueryOptions( export function createQueryServiceColumnTimeGrain( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1355,7 +1363,7 @@ export function createQueryServiceColumnTimeGrain( */ export function queryServiceColumnNumericHistogram( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnNumericHistogram( @@ -1366,7 +1374,7 @@ export function queryServiceColumnNumericHistogram( export function getQueryServiceColumnNumericHistogramQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1378,7 +1386,7 @@ export function getQueryServiceColumnNumericHistogramQueryKey( export function getQueryServiceColumnNumericHistogramQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1399,7 +1407,7 @@ export function getQueryServiceColumnNumericHistogramQueryOptions( export function createQueryServiceColumnNumericHistogram( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1418,7 +1426,7 @@ export function createQueryServiceColumnNumericHistogram( */ export function queryServiceColumnRugHistogram( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnRugHistogram( @@ -1429,7 +1437,7 @@ export function queryServiceColumnRugHistogram( export function getQueryServiceColumnRugHistogramQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1441,7 +1449,7 @@ export function getQueryServiceColumnRugHistogramQueryKey( export function getQueryServiceColumnRugHistogramQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1462,7 +1470,7 @@ export function getQueryServiceColumnRugHistogramQueryOptions( export function createQueryServiceColumnRugHistogram( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1481,7 +1489,7 @@ export function createQueryServiceColumnRugHistogram( */ export function queryServiceColumnTimeRange( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnTimeRange( @@ -1492,7 +1500,7 @@ export function queryServiceColumnTimeRange( export function getQueryServiceColumnTimeRangeQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1504,7 +1512,7 @@ export function getQueryServiceColumnTimeRangeQueryKey( export function getQueryServiceColumnTimeRangeQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1525,7 +1533,7 @@ export function getQueryServiceColumnTimeRangeQueryOptions( export function createQueryServiceColumnTimeRange( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1544,7 +1552,7 @@ export function createQueryServiceColumnTimeRange( */ export function queryServiceColumnCardinality( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnCardinality( @@ -1555,7 +1563,7 @@ export function queryServiceColumnCardinality( export function getQueryServiceColumnCardinalityQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1567,7 +1575,7 @@ export function getQueryServiceColumnCardinalityQueryKey( export function getQueryServiceColumnCardinalityQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1588,7 +1596,7 @@ export function getQueryServiceColumnCardinalityQueryOptions( export function createQueryServiceColumnCardinality( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1607,7 +1615,7 @@ export function createQueryServiceColumnCardinality( */ export function queryServiceColumnTimeSeries( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.columnTimeSeries( @@ -1618,7 +1626,7 @@ export function queryServiceColumnTimeSeries( export function getQueryServiceColumnTimeSeriesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1630,7 +1638,7 @@ export function getQueryServiceColumnTimeSeriesQueryKey( export function getQueryServiceColumnTimeSeriesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1651,7 +1659,7 @@ export function getQueryServiceColumnTimeSeriesQueryOptions( export function createQueryServiceColumnTimeSeries( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1670,7 +1678,7 @@ export function createQueryServiceColumnTimeSeries( */ export function queryServiceTableCardinality( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.tableCardinality( @@ -1681,7 +1689,7 @@ export function queryServiceTableCardinality( export function getQueryServiceTableCardinalityQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "QueryService", @@ -1693,7 +1701,7 @@ export function getQueryServiceTableCardinalityQueryKey( export function getQueryServiceTableCardinalityQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1714,7 +1722,7 @@ export function getQueryServiceTableCardinalityQueryOptions( export function createQueryServiceTableCardinality( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1733,7 +1741,7 @@ export function createQueryServiceTableCardinality( */ export function queryServiceTableColumns( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.tableColumns( @@ -1744,14 +1752,14 @@ export function queryServiceTableColumns( export function getQueryServiceTableColumnsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["QueryService", "tableColumns", instanceId, request ?? {}] as const; } export function getQueryServiceTableColumnsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1772,7 +1780,7 @@ export function getQueryServiceTableColumnsQueryOptions( export function createQueryServiceTableColumns( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1791,7 +1799,7 @@ export function createQueryServiceTableColumns( */ export function queryServiceTableRows( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.queryService.tableRows( @@ -1802,14 +1810,14 @@ export function queryServiceTableRows( export function getQueryServiceTableRowsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["QueryService", "tableRows", instanceId, request ?? {}] as const; } export function getQueryServiceTableRowsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1827,7 +1835,7 @@ export function getQueryServiceTableRowsQueryOptions( export function createQueryServiceTableRows( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1846,7 +1854,7 @@ export function createQueryServiceTableRows( */ export function queryServiceQuery( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.queryService.query({ instanceId: client.instanceId, @@ -1860,13 +1868,13 @@ export function getQueryServiceQueryMutationOptions( CreateMutationOptions< QueryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< QueryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => queryServiceQuery(client, request), @@ -1880,14 +1888,14 @@ export function createQueryServiceQueryMutation( CreateMutationOptions< QueryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< QueryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getQueryServiceQueryMutationOptions(client, options); return createMutation(mutationOptions, queryClient); @@ -1898,7 +1906,7 @@ export function createQueryServiceQueryMutation( */ export function queryServiceExport( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.queryService.export({ instanceId: client.instanceId, @@ -1912,13 +1920,13 @@ export function getQueryServiceExportMutationOptions( CreateMutationOptions< ExportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< ExportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => queryServiceExport(client, request), @@ -1932,14 +1940,14 @@ export function createQueryServiceExportMutation( CreateMutationOptions< ExportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< ExportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getQueryServiceExportMutationOptions(client, options); return createMutation(mutationOptions, queryClient); @@ -1950,7 +1958,7 @@ export function createQueryServiceExportMutation( */ export function queryServiceExportReport( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.queryService.exportReport({ instanceId: client.instanceId, @@ -1964,13 +1972,13 @@ export function getQueryServiceExportReportMutationOptions( CreateMutationOptions< ExportReportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< ExportReportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => queryServiceExportReport(client, request), @@ -1984,14 +1992,14 @@ export function createQueryServiceExportReportMutation( CreateMutationOptions< ExportReportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< ExportReportResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getQueryServiceExportReportMutationOptions( client, diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts index 23e1b3db961..9eec39ca3d7 100644 --- a/web-common/src/runtime-client/v2/gen/runtime-service.ts +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -119,25 +119,22 @@ import { */ export function runtimeServicePing( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { signal?: AbortSignal }, ): Promise { - return client.runtimeService.ping( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); + return client.runtimeService.ping(request, { signal: options?.signal }); } export function getRuntimeServicePingQueryKey( instanceId: string, - request?: PartialMessage>, + request?: PartialMessage, ): QueryKey { return ["RuntimeService", "ping", instanceId, request ?? {}] as const; } export function getRuntimeServicePingQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -155,7 +152,7 @@ export function getRuntimeServicePingQueryOptions( export function createRuntimeServicePing( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -174,25 +171,22 @@ export function createRuntimeServicePing( */ export function runtimeServiceHealth( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { signal?: AbortSignal }, ): Promise { - return client.runtimeService.health( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); + return client.runtimeService.health(request, { signal: options?.signal }); } export function getRuntimeServiceHealthQueryKey( instanceId: string, - request?: PartialMessage>, + request?: PartialMessage, ): QueryKey { return ["RuntimeService", "health", instanceId, request ?? {}] as const; } export function getRuntimeServiceHealthQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -210,7 +204,7 @@ export function getRuntimeServiceHealthQueryOptions( export function createRuntimeServiceHealth( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -229,7 +223,7 @@ export function createRuntimeServiceHealth( */ export function runtimeServiceInstanceHealth( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.instanceHealth( @@ -240,7 +234,7 @@ export function runtimeServiceInstanceHealth( export function getRuntimeServiceInstanceHealthQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -252,7 +246,7 @@ export function getRuntimeServiceInstanceHealthQueryKey( export function getRuntimeServiceInstanceHealthQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -273,7 +267,7 @@ export function getRuntimeServiceInstanceHealthQueryOptions( export function createRuntimeServiceInstanceHealth( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -292,18 +286,17 @@ export function createRuntimeServiceInstanceHealth( */ export function runtimeServiceListInstances( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { signal?: AbortSignal }, ): Promise { - return client.runtimeService.listInstances( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); + return client.runtimeService.listInstances(request, { + signal: options?.signal, + }); } export function getRuntimeServiceListInstancesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: PartialMessage, ): QueryKey { return [ "RuntimeService", @@ -315,7 +308,7 @@ export function getRuntimeServiceListInstancesQueryKey( export function getRuntimeServiceListInstancesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -336,7 +329,7 @@ export function getRuntimeServiceListInstancesQueryOptions( export function createRuntimeServiceListInstances( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -355,7 +348,7 @@ export function createRuntimeServiceListInstances( */ export function runtimeServiceGetInstance( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getInstance( @@ -366,14 +359,14 @@ export function runtimeServiceGetInstance( export function getRuntimeServiceGetInstanceQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "getInstance", instanceId, request ?? {}] as const; } export function getRuntimeServiceGetInstanceQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -394,7 +387,7 @@ export function getRuntimeServiceGetInstanceQueryOptions( export function createRuntimeServiceGetInstance( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -413,7 +406,7 @@ export function createRuntimeServiceGetInstance( */ export function runtimeServiceListFiles( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listFiles( @@ -424,14 +417,14 @@ export function runtimeServiceListFiles( export function getRuntimeServiceListFilesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "listFiles", instanceId, request ?? {}] as const; } export function getRuntimeServiceListFilesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -452,7 +445,7 @@ export function getRuntimeServiceListFilesQueryOptions( export function createRuntimeServiceListFiles( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -471,7 +464,7 @@ export function createRuntimeServiceListFiles( */ export function runtimeServiceGetFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getFile( @@ -482,14 +475,14 @@ export function runtimeServiceGetFile( export function getRuntimeServiceGetFileQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "getFile", instanceId, request ?? {}] as const; } export function getRuntimeServiceGetFileQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -507,7 +500,7 @@ export function getRuntimeServiceGetFileQueryOptions( export function createRuntimeServiceGetFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -526,25 +519,24 @@ export function createRuntimeServiceGetFile( */ export function runtimeServiceListExamples( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { signal?: AbortSignal }, ): Promise { - return client.runtimeService.listExamples( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); + return client.runtimeService.listExamples(request, { + signal: options?.signal, + }); } export function getRuntimeServiceListExamplesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: PartialMessage, ): QueryKey { return ["RuntimeService", "listExamples", instanceId, request ?? {}] as const; } export function getRuntimeServiceListExamplesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -565,7 +557,7 @@ export function getRuntimeServiceListExamplesQueryOptions( export function createRuntimeServiceListExamples( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -584,7 +576,7 @@ export function createRuntimeServiceListExamples( */ export function runtimeServiceQueryResolver( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.queryResolver( @@ -595,7 +587,7 @@ export function runtimeServiceQueryResolver( export function getRuntimeServiceQueryResolverQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -607,7 +599,7 @@ export function getRuntimeServiceQueryResolverQueryKey( export function getRuntimeServiceQueryResolverQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -628,7 +620,7 @@ export function getRuntimeServiceQueryResolverQueryOptions( export function createRuntimeServiceQueryResolver( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -647,7 +639,7 @@ export function createRuntimeServiceQueryResolver( */ export function runtimeServiceGetLogs( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getLogs( @@ -658,14 +650,14 @@ export function runtimeServiceGetLogs( export function getRuntimeServiceGetLogsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "getLogs", instanceId, request ?? {}] as const; } export function getRuntimeServiceGetLogsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -683,7 +675,7 @@ export function getRuntimeServiceGetLogsQueryOptions( export function createRuntimeServiceGetLogs( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -702,7 +694,7 @@ export function createRuntimeServiceGetLogs( */ export function runtimeServiceListResources( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listResources( @@ -713,7 +705,7 @@ export function runtimeServiceListResources( export function getRuntimeServiceListResourcesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -725,7 +717,7 @@ export function getRuntimeServiceListResourcesQueryKey( export function getRuntimeServiceListResourcesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -746,7 +738,7 @@ export function getRuntimeServiceListResourcesQueryOptions( export function createRuntimeServiceListResources( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -765,7 +757,7 @@ export function createRuntimeServiceListResources( */ export function runtimeServiceGetResource( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getResource( @@ -776,14 +768,14 @@ export function runtimeServiceGetResource( export function getRuntimeServiceGetResourceQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "getResource", instanceId, request ?? {}] as const; } export function getRuntimeServiceGetResourceQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -804,7 +796,7 @@ export function getRuntimeServiceGetResourceQueryOptions( export function createRuntimeServiceGetResource( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -823,7 +815,7 @@ export function createRuntimeServiceGetResource( */ export function runtimeServiceGetExplore( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getExplore( @@ -834,14 +826,14 @@ export function runtimeServiceGetExplore( export function getRuntimeServiceGetExploreQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "getExplore", instanceId, request ?? {}] as const; } export function getRuntimeServiceGetExploreQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -862,7 +854,7 @@ export function getRuntimeServiceGetExploreQueryOptions( export function createRuntimeServiceGetExplore( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -881,7 +873,7 @@ export function createRuntimeServiceGetExplore( */ export function runtimeServiceGetModelPartitions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getModelPartitions( @@ -892,7 +884,7 @@ export function runtimeServiceGetModelPartitions( export function getRuntimeServiceGetModelPartitionsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -904,7 +896,7 @@ export function getRuntimeServiceGetModelPartitionsQueryKey( export function getRuntimeServiceGetModelPartitionsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -925,7 +917,7 @@ export function getRuntimeServiceGetModelPartitionsQueryOptions( export function createRuntimeServiceGetModelPartitions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -944,18 +936,17 @@ export function createRuntimeServiceGetModelPartitions( */ export function runtimeServiceListConnectorDrivers( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { signal?: AbortSignal }, ): Promise { - return client.runtimeService.listConnectorDrivers( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); + return client.runtimeService.listConnectorDrivers(request, { + signal: options?.signal, + }); } export function getRuntimeServiceListConnectorDriversQueryKey( instanceId: string, - request?: PartialMessage>, + request?: PartialMessage, ): QueryKey { return [ "RuntimeService", @@ -967,7 +958,7 @@ export function getRuntimeServiceListConnectorDriversQueryKey( export function getRuntimeServiceListConnectorDriversQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -988,7 +979,7 @@ export function getRuntimeServiceListConnectorDriversQueryOptions( export function createRuntimeServiceListConnectorDrivers( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -1007,7 +998,7 @@ export function createRuntimeServiceListConnectorDrivers( */ export function runtimeServiceAnalyzeConnectors( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.analyzeConnectors( @@ -1018,7 +1009,7 @@ export function runtimeServiceAnalyzeConnectors( export function getRuntimeServiceAnalyzeConnectorsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1030,7 +1021,7 @@ export function getRuntimeServiceAnalyzeConnectorsQueryKey( export function getRuntimeServiceAnalyzeConnectorsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1051,7 +1042,7 @@ export function getRuntimeServiceAnalyzeConnectorsQueryOptions( export function createRuntimeServiceAnalyzeConnectors( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1070,7 +1061,7 @@ export function createRuntimeServiceAnalyzeConnectors( */ export function runtimeServiceListNotifierConnectors( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listNotifierConnectors( @@ -1081,7 +1072,7 @@ export function runtimeServiceListNotifierConnectors( export function getRuntimeServiceListNotifierConnectorsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1093,7 +1084,7 @@ export function getRuntimeServiceListNotifierConnectorsQueryKey( export function getRuntimeServiceListNotifierConnectorsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1114,7 +1105,7 @@ export function getRuntimeServiceListNotifierConnectorsQueryOptions( export function createRuntimeServiceListNotifierConnectors( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1133,7 +1124,7 @@ export function createRuntimeServiceListNotifierConnectors( */ export function runtimeServiceListConversations( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listConversations( @@ -1144,7 +1135,7 @@ export function runtimeServiceListConversations( export function getRuntimeServiceListConversationsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1156,7 +1147,7 @@ export function getRuntimeServiceListConversationsQueryKey( export function getRuntimeServiceListConversationsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1177,7 +1168,7 @@ export function getRuntimeServiceListConversationsQueryOptions( export function createRuntimeServiceListConversations( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1196,7 +1187,7 @@ export function createRuntimeServiceListConversations( */ export function runtimeServiceGetConversation( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.getConversation( @@ -1207,7 +1198,7 @@ export function runtimeServiceGetConversation( export function getRuntimeServiceGetConversationQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1219,7 +1210,7 @@ export function getRuntimeServiceGetConversationQueryKey( export function getRuntimeServiceGetConversationQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1240,7 +1231,7 @@ export function getRuntimeServiceGetConversationQueryOptions( export function createRuntimeServiceGetConversation( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1259,7 +1250,7 @@ export function createRuntimeServiceGetConversation( */ export function runtimeServiceListTools( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listTools( @@ -1270,14 +1261,14 @@ export function runtimeServiceListTools( export function getRuntimeServiceListToolsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return ["RuntimeService", "listTools", instanceId, request ?? {}] as const; } export function getRuntimeServiceListToolsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1298,7 +1289,7 @@ export function getRuntimeServiceListToolsQueryOptions( export function createRuntimeServiceListTools( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1317,25 +1308,24 @@ export function createRuntimeServiceListTools( */ export function runtimeServiceIssueDevJWT( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { signal?: AbortSignal }, ): Promise { - return client.runtimeService.issueDevJWT( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); + return client.runtimeService.issueDevJWT(request, { + signal: options?.signal, + }); } export function getRuntimeServiceIssueDevJWTQueryKey( instanceId: string, - request?: PartialMessage>, + request?: PartialMessage, ): QueryKey { return ["RuntimeService", "issueDevJWT", instanceId, request ?? {}] as const; } export function getRuntimeServiceIssueDevJWTQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -1356,7 +1346,7 @@ export function getRuntimeServiceIssueDevJWTQueryOptions( export function createRuntimeServiceIssueDevJWT( client: RuntimeClient, - request: PartialMessage>, + request: PartialMessage, options?: { query?: Partial>; }, @@ -1375,7 +1365,7 @@ export function createRuntimeServiceIssueDevJWT( */ export function runtimeServiceAnalyzeVariables( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.analyzeVariables( @@ -1386,7 +1376,7 @@ export function runtimeServiceAnalyzeVariables( export function getRuntimeServiceAnalyzeVariablesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1398,7 +1388,7 @@ export function getRuntimeServiceAnalyzeVariablesQueryKey( export function getRuntimeServiceAnalyzeVariablesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1419,7 +1409,7 @@ export function getRuntimeServiceAnalyzeVariablesQueryOptions( export function createRuntimeServiceAnalyzeVariables( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1438,7 +1428,7 @@ export function createRuntimeServiceAnalyzeVariables( */ export function runtimeServiceListGitCommits( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listGitCommits( @@ -1449,7 +1439,7 @@ export function runtimeServiceListGitCommits( export function getRuntimeServiceListGitCommitsQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1461,7 +1451,7 @@ export function getRuntimeServiceListGitCommitsQueryKey( export function getRuntimeServiceListGitCommitsQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1482,7 +1472,7 @@ export function getRuntimeServiceListGitCommitsQueryOptions( export function createRuntimeServiceListGitCommits( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1501,7 +1491,7 @@ export function createRuntimeServiceListGitCommits( */ export function runtimeServiceListGitBranches( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService.listGitBranches( @@ -1512,7 +1502,7 @@ export function runtimeServiceListGitBranches( export function getRuntimeServiceListGitBranchesQueryKey( instanceId: string, - request?: PartialMessage>, + request?: Omit, "instanceId">, ): QueryKey { return [ "RuntimeService", @@ -1524,7 +1514,7 @@ export function getRuntimeServiceListGitBranchesQueryKey( export function getRuntimeServiceListGitBranchesQueryOptions( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1545,7 +1535,7 @@ export function getRuntimeServiceListGitBranchesQueryOptions( export function createRuntimeServiceListGitBranches( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, options?: { query?: Partial>; }, @@ -1564,7 +1554,7 @@ export function createRuntimeServiceListGitBranches( */ export function runtimeServiceCreateInstance( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.createInstance({ instanceId: client.instanceId, @@ -1578,13 +1568,13 @@ export function getRuntimeServiceCreateInstanceMutationOptions( CreateMutationOptions< CreateInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< CreateInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceCreateInstance(client, request), @@ -1598,14 +1588,14 @@ export function createRuntimeServiceCreateInstanceMutation( CreateMutationOptions< CreateInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< CreateInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceCreateInstanceMutationOptions( client, @@ -1619,7 +1609,7 @@ export function createRuntimeServiceCreateInstanceMutation( */ export function runtimeServiceEditInstance( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.editInstance({ instanceId: client.instanceId, @@ -1633,13 +1623,13 @@ export function getRuntimeServiceEditInstanceMutationOptions( CreateMutationOptions< EditInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< EditInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceEditInstance(client, request), @@ -1653,14 +1643,14 @@ export function createRuntimeServiceEditInstanceMutation( CreateMutationOptions< EditInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< EditInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceEditInstanceMutationOptions( client, @@ -1674,7 +1664,7 @@ export function createRuntimeServiceEditInstanceMutation( */ export function runtimeServiceDeleteInstance( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.deleteInstance({ instanceId: client.instanceId, @@ -1688,13 +1678,13 @@ export function getRuntimeServiceDeleteInstanceMutationOptions( CreateMutationOptions< DeleteInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< DeleteInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceDeleteInstance(client, request), @@ -1708,14 +1698,14 @@ export function createRuntimeServiceDeleteInstanceMutation( CreateMutationOptions< DeleteInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< DeleteInstanceResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceDeleteInstanceMutationOptions( client, @@ -1729,7 +1719,7 @@ export function createRuntimeServiceDeleteInstanceMutation( */ export function runtimeServiceReloadConfig( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.reloadConfig({ instanceId: client.instanceId, @@ -1743,13 +1733,13 @@ export function getRuntimeServiceReloadConfigMutationOptions( CreateMutationOptions< ReloadConfigResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< ReloadConfigResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceReloadConfig(client, request), @@ -1763,14 +1753,14 @@ export function createRuntimeServiceReloadConfigMutation( CreateMutationOptions< ReloadConfigResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< ReloadConfigResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceReloadConfigMutationOptions( client, @@ -1784,7 +1774,7 @@ export function createRuntimeServiceReloadConfigMutation( */ export function runtimeServicePutFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.putFile({ instanceId: client.instanceId, @@ -1798,13 +1788,13 @@ export function getRuntimeServicePutFileMutationOptions( CreateMutationOptions< PutFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< PutFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServicePutFile(client, request), @@ -1818,14 +1808,14 @@ export function createRuntimeServicePutFileMutation( CreateMutationOptions< PutFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< PutFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServicePutFileMutationOptions( client, @@ -1839,7 +1829,7 @@ export function createRuntimeServicePutFileMutation( */ export function runtimeServiceCreateDirectory( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.createDirectory({ instanceId: client.instanceId, @@ -1853,13 +1843,13 @@ export function getRuntimeServiceCreateDirectoryMutationOptions( CreateMutationOptions< CreateDirectoryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< CreateDirectoryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceCreateDirectory(client, request), @@ -1873,14 +1863,14 @@ export function createRuntimeServiceCreateDirectoryMutation( CreateMutationOptions< CreateDirectoryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< CreateDirectoryResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceCreateDirectoryMutationOptions( client, @@ -1894,7 +1884,7 @@ export function createRuntimeServiceCreateDirectoryMutation( */ export function runtimeServiceDeleteFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.deleteFile({ instanceId: client.instanceId, @@ -1908,13 +1898,13 @@ export function getRuntimeServiceDeleteFileMutationOptions( CreateMutationOptions< DeleteFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< DeleteFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceDeleteFile(client, request), @@ -1928,14 +1918,14 @@ export function createRuntimeServiceDeleteFileMutation( CreateMutationOptions< DeleteFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< DeleteFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceDeleteFileMutationOptions( client, @@ -1949,7 +1939,7 @@ export function createRuntimeServiceDeleteFileMutation( */ export function runtimeServiceRenameFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.renameFile({ instanceId: client.instanceId, @@ -1963,13 +1953,13 @@ export function getRuntimeServiceRenameFileMutationOptions( CreateMutationOptions< RenameFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< RenameFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceRenameFile(client, request), @@ -1983,14 +1973,14 @@ export function createRuntimeServiceRenameFileMutation( CreateMutationOptions< RenameFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< RenameFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceRenameFileMutationOptions( client, @@ -2004,7 +1994,7 @@ export function createRuntimeServiceRenameFileMutation( */ export function runtimeServiceUnpackExample( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.unpackExample({ instanceId: client.instanceId, @@ -2018,13 +2008,13 @@ export function getRuntimeServiceUnpackExampleMutationOptions( CreateMutationOptions< UnpackExampleResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< UnpackExampleResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceUnpackExample(client, request), @@ -2038,14 +2028,14 @@ export function createRuntimeServiceUnpackExampleMutation( CreateMutationOptions< UnpackExampleResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< UnpackExampleResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceUnpackExampleMutationOptions( client, @@ -2059,7 +2049,7 @@ export function createRuntimeServiceUnpackExampleMutation( */ export function runtimeServiceUnpackEmpty( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.unpackEmpty({ instanceId: client.instanceId, @@ -2073,13 +2063,13 @@ export function getRuntimeServiceUnpackEmptyMutationOptions( CreateMutationOptions< UnpackEmptyResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< UnpackEmptyResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceUnpackEmpty(client, request), @@ -2093,14 +2083,14 @@ export function createRuntimeServiceUnpackEmptyMutation( CreateMutationOptions< UnpackEmptyResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< UnpackEmptyResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceUnpackEmptyMutationOptions( client, @@ -2114,7 +2104,7 @@ export function createRuntimeServiceUnpackEmptyMutation( */ export function runtimeServiceGenerateMetricsViewFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.generateMetricsViewFile({ instanceId: client.instanceId, @@ -2128,13 +2118,13 @@ export function getRuntimeServiceGenerateMetricsViewFileMutationOptions( CreateMutationOptions< GenerateMetricsViewFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GenerateMetricsViewFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => @@ -2149,14 +2139,14 @@ export function createRuntimeServiceGenerateMetricsViewFileMutation( CreateMutationOptions< GenerateMetricsViewFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GenerateMetricsViewFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGenerateMetricsViewFileMutationOptions(client, options); @@ -2168,7 +2158,7 @@ export function createRuntimeServiceGenerateMetricsViewFileMutation( */ export function runtimeServiceGenerateCanvasFile( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.generateCanvasFile({ instanceId: client.instanceId, @@ -2182,13 +2172,13 @@ export function getRuntimeServiceGenerateCanvasFileMutationOptions( CreateMutationOptions< GenerateCanvasFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GenerateCanvasFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGenerateCanvasFile(client, request), @@ -2202,14 +2192,14 @@ export function createRuntimeServiceGenerateCanvasFileMutation( CreateMutationOptions< GenerateCanvasFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GenerateCanvasFileResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGenerateCanvasFileMutationOptions( client, @@ -2223,7 +2213,7 @@ export function createRuntimeServiceGenerateCanvasFileMutation( */ export function runtimeServiceGenerateResolver( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.generateResolver({ instanceId: client.instanceId, @@ -2237,13 +2227,13 @@ export function getRuntimeServiceGenerateResolverMutationOptions( CreateMutationOptions< GenerateResolverResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GenerateResolverResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGenerateResolver(client, request), @@ -2257,14 +2247,14 @@ export function createRuntimeServiceGenerateResolverMutation( CreateMutationOptions< GenerateResolverResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GenerateResolverResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGenerateResolverMutationOptions( client, @@ -2278,7 +2268,7 @@ export function createRuntimeServiceGenerateResolverMutation( */ export function runtimeServiceGenerateRenderer( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.generateRenderer({ instanceId: client.instanceId, @@ -2292,13 +2282,13 @@ export function getRuntimeServiceGenerateRendererMutationOptions( CreateMutationOptions< GenerateRendererResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GenerateRendererResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGenerateRenderer(client, request), @@ -2312,14 +2302,14 @@ export function createRuntimeServiceGenerateRendererMutation( CreateMutationOptions< GenerateRendererResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GenerateRendererResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGenerateRendererMutationOptions( client, @@ -2333,7 +2323,7 @@ export function createRuntimeServiceGenerateRendererMutation( */ export function runtimeServiceCreateTrigger( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.createTrigger({ instanceId: client.instanceId, @@ -2347,13 +2337,13 @@ export function getRuntimeServiceCreateTriggerMutationOptions( CreateMutationOptions< CreateTriggerResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< CreateTriggerResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceCreateTrigger(client, request), @@ -2367,14 +2357,14 @@ export function createRuntimeServiceCreateTriggerMutation( CreateMutationOptions< CreateTriggerResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< CreateTriggerResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceCreateTriggerMutationOptions( client, @@ -2388,7 +2378,7 @@ export function createRuntimeServiceCreateTriggerMutation( */ export function runtimeServiceShareConversation( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.shareConversation({ instanceId: client.instanceId, @@ -2402,13 +2392,13 @@ export function getRuntimeServiceShareConversationMutationOptions( CreateMutationOptions< ShareConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< ShareConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceShareConversation(client, request), @@ -2422,14 +2412,14 @@ export function createRuntimeServiceShareConversationMutation( CreateMutationOptions< ShareConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< ShareConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceShareConversationMutationOptions( client, @@ -2443,7 +2433,7 @@ export function createRuntimeServiceShareConversationMutation( */ export function runtimeServiceForkConversation( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.forkConversation({ instanceId: client.instanceId, @@ -2457,13 +2447,13 @@ export function getRuntimeServiceForkConversationMutationOptions( CreateMutationOptions< ForkConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< ForkConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceForkConversation(client, request), @@ -2477,14 +2467,14 @@ export function createRuntimeServiceForkConversationMutation( CreateMutationOptions< ForkConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< ForkConversationResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceForkConversationMutationOptions( client, @@ -2498,7 +2488,7 @@ export function createRuntimeServiceForkConversationMutation( */ export function runtimeServiceComplete( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.complete({ instanceId: client.instanceId, @@ -2512,13 +2502,13 @@ export function getRuntimeServiceCompleteMutationOptions( CreateMutationOptions< CompleteResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< CompleteResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceComplete(client, request), @@ -2532,14 +2522,14 @@ export function createRuntimeServiceCompleteMutation( CreateMutationOptions< CompleteResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< CompleteResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceCompleteMutationOptions( client, @@ -2553,7 +2543,7 @@ export function createRuntimeServiceCompleteMutation( */ export function runtimeServiceGitStatus( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.gitStatus({ instanceId: client.instanceId, @@ -2567,13 +2557,13 @@ export function getRuntimeServiceGitStatusMutationOptions( CreateMutationOptions< GitStatusResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GitStatusResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGitStatus(client, request), @@ -2587,14 +2577,14 @@ export function createRuntimeServiceGitStatusMutation( CreateMutationOptions< GitStatusResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GitStatusResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGitStatusMutationOptions( client, @@ -2608,7 +2598,7 @@ export function createRuntimeServiceGitStatusMutation( */ export function runtimeServiceGitCommit( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.gitCommit({ instanceId: client.instanceId, @@ -2622,13 +2612,13 @@ export function getRuntimeServiceGitCommitMutationOptions( CreateMutationOptions< GitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGitCommit(client, request), @@ -2642,14 +2632,14 @@ export function createRuntimeServiceGitCommitMutation( CreateMutationOptions< GitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGitCommitMutationOptions( client, @@ -2663,7 +2653,7 @@ export function createRuntimeServiceGitCommitMutation( */ export function runtimeServiceRestoreGitCommit( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.restoreGitCommit({ instanceId: client.instanceId, @@ -2677,13 +2667,13 @@ export function getRuntimeServiceRestoreGitCommitMutationOptions( CreateMutationOptions< RestoreGitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< RestoreGitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceRestoreGitCommit(client, request), @@ -2697,14 +2687,14 @@ export function createRuntimeServiceRestoreGitCommitMutation( CreateMutationOptions< RestoreGitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< RestoreGitCommitResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceRestoreGitCommitMutationOptions( client, @@ -2718,7 +2708,7 @@ export function createRuntimeServiceRestoreGitCommitMutation( */ export function runtimeServiceGitMergeToBranch( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.gitMergeToBranch({ instanceId: client.instanceId, @@ -2732,13 +2722,13 @@ export function getRuntimeServiceGitMergeToBranchMutationOptions( CreateMutationOptions< GitMergeToBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GitMergeToBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGitMergeToBranch(client, request), @@ -2752,14 +2742,14 @@ export function createRuntimeServiceGitMergeToBranchMutation( CreateMutationOptions< GitMergeToBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GitMergeToBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGitMergeToBranchMutationOptions( client, @@ -2773,7 +2763,7 @@ export function createRuntimeServiceGitMergeToBranchMutation( */ export function runtimeServiceGitSwitchBranch( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.gitSwitchBranch({ instanceId: client.instanceId, @@ -2787,13 +2777,13 @@ export function getRuntimeServiceGitSwitchBranchMutationOptions( CreateMutationOptions< GitSwitchBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GitSwitchBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGitSwitchBranch(client, request), @@ -2807,14 +2797,14 @@ export function createRuntimeServiceGitSwitchBranchMutation( CreateMutationOptions< GitSwitchBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GitSwitchBranchResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGitSwitchBranchMutationOptions( client, @@ -2828,7 +2818,7 @@ export function createRuntimeServiceGitSwitchBranchMutation( */ export function runtimeServiceGitPull( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.gitPull({ instanceId: client.instanceId, @@ -2842,13 +2832,13 @@ export function getRuntimeServiceGitPullMutationOptions( CreateMutationOptions< GitPullResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GitPullResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGitPull(client, request), @@ -2862,14 +2852,14 @@ export function createRuntimeServiceGitPullMutation( CreateMutationOptions< GitPullResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GitPullResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGitPullMutationOptions( client, @@ -2883,7 +2873,7 @@ export function createRuntimeServiceGitPullMutation( */ export function runtimeServiceGitPush( client: RuntimeClient, - request: PartialMessage>, + request: Omit, "instanceId">, ): Promise { return client.runtimeService.gitPush({ instanceId: client.instanceId, @@ -2897,13 +2887,13 @@ export function getRuntimeServiceGitPushMutationOptions( CreateMutationOptions< GitPushResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, ): CreateMutationOptions< GitPushResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { return { mutationFn: (request) => runtimeServiceGitPush(client, request), @@ -2917,14 +2907,14 @@ export function createRuntimeServiceGitPushMutation( CreateMutationOptions< GitPushResponse, unknown, - PartialMessage> + Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< GitPushResponse, unknown, - PartialMessage> + Omit, "instanceId"> > { const mutationOptions = getRuntimeServiceGitPushMutationOptions( client, From 366c809532b5a836b309b03462ceb527d18ad60a Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 12:34:01 +0300 Subject: [PATCH 05/27] fix: prevent reactive loop in runtime store bridge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When RuntimeProvider calls setRuntime with no JWT (local dev), the equality check compared authContext ("user") against current.jwt?.authContext (undefined), always returning false. This caused the store to emit a new value on every call, triggering an infinite reactive loop: RuntimeProvider bridge → store update → layout re-render → bridge again. Fix by treating JWT as unchanged when both old and new JWT are absent, regardless of authContext. --- web-common/src/runtime-client/runtime-store.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web-common/src/runtime-client/runtime-store.ts b/web-common/src/runtime-client/runtime-store.ts index ea2ddce7de5..dba748f1a7e 100644 --- a/web-common/src/runtime-client/runtime-store.ts +++ b/web-common/src/runtime-client/runtime-store.ts @@ -44,11 +44,14 @@ const createRuntimeStore = () => { update((current) => { // Don't update the store if the values have not changed // (especially, don't update the JWT `receivedAt`) + const jwtUnchanged = jwt + ? jwt === current.jwt?.token && + authContext === current.jwt?.authContext + : !current.jwt; if ( host === current.host && instanceId === current.instanceId && - jwt === current.jwt?.token && - authContext === current.jwt?.authContext + jwtUnchanged ) { return current; } From 13adf06be65472aa0cf1cc800f8797a1ac7102d5 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 14:13:15 +0300 Subject: [PATCH 06/27] feat: add JSON bridge to v2 code generator (Phase 4) Generated hooks now accept/return Orval-compatible types (V1*) in their public API, converting to/from proto internally via fromJson/toJson. This lets consumers switch to v2 hooks without changing their existing type usage (V1Expression, V1Resource, etc.). The generator reads the Orval schemas file at generation time to determine which V1 types exist. Response types always use V1 (100% coverage). Request types use V1 when available (~25%, POST endpoints) and fall back to PartialMessage for GET endpoints. --- web-common/scripts/generate-query-hooks.ts | 132 +- .../v2/gen/connector-service.ts | 193 +-- .../runtime-client/v2/gen/query-service.ts | 1058 ++++++++------ .../runtime-client/v2/gen/runtime-service.ts | 1246 ++++++++++------- 4 files changed, 1572 insertions(+), 1057 deletions(-) diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts index cd0d86d5450..7a1c8a08e44 100644 --- a/web-common/scripts/generate-query-hooks.ts +++ b/web-common/scripts/generate-query-hooks.ts @@ -90,6 +90,38 @@ function getProtoImportPath(serviceName: string): string { return `../../../proto/gen/rill/runtime/v1/${fileMap[serviceName]}`; } +// --- JSON bridge: Orval type helpers --- + +/** Read Orval schemas to discover available V1 types at generation time */ +const orvalSchemaPath = path.resolve( + __dirname, + "../src/runtime-client/gen/index.schemas.ts", +); +const orvalSchemaContent = fs.readFileSync(orvalSchemaPath, "utf-8"); +const availableOrvalTypes = new Set(); +for (const match of orvalSchemaContent.matchAll( + /^export (?:type|interface) (\w+)/gm, +)) { + availableOrvalTypes.add(match[1]); +} + +const ORVAL_IMPORT_PATH = "../../gen/index.schemas"; + +function orvalTypeName(protoTypeName: string): string { + return `V1${protoTypeName}`; +} + +function hasOrvalType(protoTypeName: string): boolean { + return availableOrvalTypes.has(orvalTypeName(protoTypeName)); +} + +/** Get the public-facing type for a request or response */ +function publicType(protoTypeName: string): string { + return hasOrvalType(protoTypeName) + ? orvalTypeName(protoTypeName) + : `PartialMessage<${protoTypeName}>`; +} + // --- Method extraction --- function extractMethods(service: ServiceDef): MethodInfo[] { @@ -133,11 +165,26 @@ function generateServiceFile(service: ServiceDef): string { (m) => m.classification === "mutation", ); - // Collect all request/response types we need to import + // Collect proto types (value imports; needed for fromJson/toJson calls) const protoTypes = new Set(); + // Collect Orval types (type-only imports; used in public API signatures) + const orvalTypes = new Set(); + // Track whether PartialMessage is needed (for request types without V1 counterparts) + let needsPartialMessage = false; + for (const m of methods) { protoTypes.add(m.inputType); - protoTypes.add(m.outputType); + + if (hasOrvalType(m.inputType)) { + orvalTypes.add(orvalTypeName(m.inputType)); + } else { + needsPartialMessage = true; + // Still need proto type for PartialMessage<> reference + } + + if (hasOrvalType(m.outputType)) { + orvalTypes.add(orvalTypeName(m.outputType)); + } } const lines: string[] = []; @@ -146,9 +193,14 @@ function generateServiceFile(service: ServiceDef): string { lines.push(`// Generated by generate-query-hooks.ts — DO NOT EDIT`); lines.push(``); lines.push(`import type { RuntimeClient } from "../runtime-client";`); + + // @bufbuild/protobuf imports (JsonValue always needed; PartialMessage conditional) + const bufImports: string[] = ["JsonValue"]; + if (needsPartialMessage) bufImports.unshift("PartialMessage"); lines.push( - `import type { PartialMessage } from "@bufbuild/protobuf";`, + `import type { ${bufImports.join(", ")} } from "@bufbuild/protobuf";`, ); + lines.push( `import {`, ` createQuery,`, @@ -163,12 +215,24 @@ function generateServiceFile(service: ServiceDef): string { `} from "@tanstack/svelte-query";`, ); - // Proto type imports - const sortedTypes = [...protoTypes].sort(); + // Orval type imports (type-only; for public API signatures) + if (orvalTypes.size > 0) { + const sortedOrval = [...orvalTypes].sort(); + lines.push( + `import type {`, + ...sortedOrval.map( + (t, i) => ` ${t}${i < sortedOrval.length - 1 ? "," : ""}`, + ), + `} from "${ORVAL_IMPORT_PATH}";`, + ); + } + + // Proto type imports (value imports; needed for fromJson calls) + const sortedProto = [...protoTypes].sort(); lines.push( `import {`, - ...sortedTypes.map((t, i) => - ` ${t}${i < sortedTypes.length - 1 ? "," : ""}`, + ...sortedProto.map( + (t, i) => ` ${t}${i < sortedProto.length - 1 ? "," : ""}`, ), `} from "${protoImportPath}";`, ); @@ -182,15 +246,19 @@ function generateServiceFile(service: ServiceDef): string { const optsFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}QueryOptions`; const hookName = `create${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}`; - // Request type: omit instanceId when the proto message has it (client injects it) + // Public-facing request type (V1 Orval when available, PartialMessage fallback) + const inputPublic = publicType(m.inputType); const requestType = m.hasInstanceId - ? `Omit, "instanceId">` - : `PartialMessage<${m.inputType}>`; + ? `Omit<${inputPublic}, "instanceId">` + : inputPublic; const requestSpread = m.hasInstanceId ? `{ instanceId: client.instanceId, ...request }` : `request`; - // Tier 1: Raw function + // Public-facing response type (always V1 Orval) + const responseType = publicType(m.outputType); + + // Tier 1: Raw function (JSON bridge: fromJson on input, toJson on output) lines.push( `/**`, ` * Raw RPC call: ${serviceName}.${m.methodName}`, @@ -199,11 +267,11 @@ function generateServiceFile(service: ServiceDef): string { ` client: RuntimeClient,`, ` request: ${requestType},`, ` options?: { signal?: AbortSignal },`, - `): Promise<${m.outputType}> {`, + `): Promise<${responseType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, - ` ${requestSpread},`, + ` ${m.inputType}.fromJson(${requestSpread} as unknown as JsonValue),`, ` { signal: options?.signal },`, - ` );`, + ` ).then(r => r.toJson() as unknown as ${responseType});`, `}`, ``, ); @@ -225,11 +293,11 @@ function generateServiceFile(service: ServiceDef): string { ` client: RuntimeClient,`, ` request: ${requestType},`, ` options?: {`, - ` query?: Partial>;`, + ` query?: Partial>;`, ` },`, - `): CreateQueryOptions<${m.outputType}> & { queryKey: QueryKey } {`, + `): CreateQueryOptions<${responseType}> & { queryKey: QueryKey } {`, ` const queryKey = ${keyFnName}(client.instanceId, request);`, - ` const queryFn: QueryFunction<${m.outputType}> = ({ signal }) =>`, + ` const queryFn: QueryFunction<${responseType}> = ({ signal }) =>`, ` ${fullName}(client, request, { signal });`, ` return {`, ` queryKey,`, @@ -247,10 +315,10 @@ function generateServiceFile(service: ServiceDef): string { ` client: RuntimeClient,`, ` request: ${requestType},`, ` options?: {`, - ` query?: Partial>;`, + ` query?: Partial>;`, ` },`, ` queryClient?: QueryClient,`, - `): CreateQueryResult<${m.outputType}> {`, + `): CreateQueryResult<${responseType}> {`, ` const queryOptions = ${optsFnName}(client, request, options);`, ` return createQuery(queryOptions, queryClient);`, `}`, @@ -264,15 +332,19 @@ function generateServiceFile(service: ServiceDef): string { const mutOptsFnName = `get${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}MutationOptions`; const mutHookName = `create${pascalCase(serviceClientProp)}${pascalCase(m.methodKey)}Mutation`; - // Request type: omit instanceId when the proto message has it + // Public-facing request type (V1 Orval when available, PartialMessage fallback) + const inputPublic = publicType(m.inputType); const requestType = m.hasInstanceId - ? `Omit, "instanceId">` - : `PartialMessage<${m.inputType}>`; + ? `Omit<${inputPublic}, "instanceId">` + : inputPublic; const requestSpread = m.hasInstanceId ? `{ instanceId: client.instanceId, ...request }` : `request`; - // Raw function + // Public-facing response type (always V1 Orval) + const responseType = publicType(m.outputType); + + // Raw function (JSON bridge: fromJson on input, toJson on output) lines.push( `/**`, ` * Raw RPC call (mutation): ${serviceName}.${m.methodName}`, @@ -280,10 +352,10 @@ function generateServiceFile(service: ServiceDef): string { `export function ${fullName}(`, ` client: RuntimeClient,`, ` request: ${requestType},`, - `): Promise<${m.outputType}> {`, + `): Promise<${responseType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, - ` ${requestSpread},`, - ` );`, + ` ${m.inputType}.fromJson(${requestSpread} as unknown as JsonValue),`, + ` ).then(r => r.toJson() as unknown as ${responseType});`, `}`, ``, ); @@ -292,8 +364,8 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${mutOptsFnName}(`, ` client: RuntimeClient,`, - ` options?: Partial>,`, - `): CreateMutationOptions<${m.outputType}, unknown, ${requestType}> {`, + ` options?: Partial>,`, + `): CreateMutationOptions<${responseType}, unknown, ${requestType}> {`, ` return {`, ` mutationFn: (request) => ${fullName}(client, request),`, ` ...options,`, @@ -306,9 +378,9 @@ function generateServiceFile(service: ServiceDef): string { lines.push( `export function ${mutHookName}(`, ` client: RuntimeClient,`, - ` options?: Partial>,`, + ` options?: Partial>,`, ` queryClient?: QueryClient,`, - `): CreateMutationResult<${m.outputType}, unknown, ${requestType}> {`, + `): CreateMutationResult<${responseType}, unknown, ${requestType}> {`, ` const mutationOptions = ${mutOptsFnName}(client, options);`, ` return createMutation(mutationOptions, queryClient);`, `}`, diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts index ab996a238f9..5d7fb9087b8 100644 --- a/web-common/src/runtime-client/v2/gen/connector-service.ts +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -1,7 +1,7 @@ // Generated by generate-query-hooks.ts — DO NOT EDIT import type { RuntimeClient } from "../runtime-client"; -import type { PartialMessage } from "@bufbuild/protobuf"; +import type { PartialMessage, JsonValue } from "@bufbuild/protobuf"; import { createQuery, createMutation, @@ -13,21 +13,23 @@ import { type CreateMutationOptions, type CreateMutationResult, } from "@tanstack/svelte-query"; +import type { + V1GetTableResponse, + V1ListBucketsResponse, + V1ListDatabaseSchemasResponse, + V1ListObjectsResponse, + V1ListTablesResponse, + V1OLAPGetTableResponse, + V1OLAPListTablesResponse, +} from "../../gen/index.schemas"; import { GetTableRequest, - GetTableResponse, ListBucketsRequest, - ListBucketsResponse, ListDatabaseSchemasRequest, - ListDatabaseSchemasResponse, ListObjectsRequest, - ListObjectsResponse, ListTablesRequest, - ListTablesResponse, OLAPGetTableRequest, - OLAPGetTableResponse, OLAPListTablesRequest, - OLAPListTablesResponse, } from "../../../proto/gen/rill/runtime/v1/connectors_pb"; /** @@ -37,11 +39,16 @@ export function connectorServiceListBuckets( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.listBuckets( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .listBuckets( + ListBucketsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListBucketsResponse); } export function getConnectorServiceListBucketsQueryKey( @@ -60,14 +67,14 @@ export function getConnectorServiceListBucketsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceListBucketsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceListBuckets(client, request, { signal }); return { queryKey, @@ -81,10 +88,10 @@ export function createConnectorServiceListBuckets( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListBucketsQueryOptions( client, request, @@ -100,11 +107,16 @@ export function connectorServiceListObjects( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.listObjects( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .listObjects( + ListObjectsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListObjectsResponse); } export function getConnectorServiceListObjectsQueryKey( @@ -123,14 +135,14 @@ export function getConnectorServiceListObjectsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceListObjectsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceListObjects(client, request, { signal }); return { queryKey, @@ -144,10 +156,10 @@ export function createConnectorServiceListObjects( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListObjectsQueryOptions( client, request, @@ -163,11 +175,16 @@ export function connectorServiceOLAPListTables( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.oLAPListTables( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .oLAPListTables( + OLAPListTablesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1OLAPListTablesResponse); } export function getConnectorServiceOLAPListTablesQueryKey( @@ -186,14 +203,14 @@ export function getConnectorServiceOLAPListTablesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceOLAPListTablesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceOLAPListTables(client, request, { signal }); return { queryKey, @@ -207,10 +224,10 @@ export function createConnectorServiceOLAPListTables( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceOLAPListTablesQueryOptions( client, request, @@ -226,11 +243,16 @@ export function connectorServiceOLAPGetTable( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.oLAPGetTable( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .oLAPGetTable( + OLAPGetTableRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1OLAPGetTableResponse); } export function getConnectorServiceOLAPGetTableQueryKey( @@ -249,14 +271,14 @@ export function getConnectorServiceOLAPGetTableQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceOLAPGetTableQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceOLAPGetTable(client, request, { signal }); return { queryKey, @@ -270,10 +292,10 @@ export function createConnectorServiceOLAPGetTable( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceOLAPGetTableQueryOptions( client, request, @@ -289,11 +311,16 @@ export function connectorServiceListDatabaseSchemas( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.listDatabaseSchemas( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .listDatabaseSchemas( + ListDatabaseSchemasRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListDatabaseSchemasResponse); } export function getConnectorServiceListDatabaseSchemasQueryKey( @@ -312,14 +339,14 @@ export function getConnectorServiceListDatabaseSchemasQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceListDatabaseSchemasQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceListDatabaseSchemas(client, request, { signal }); return { queryKey, @@ -333,10 +360,10 @@ export function createConnectorServiceListDatabaseSchemas( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListDatabaseSchemasQueryOptions( client, request, @@ -352,11 +379,16 @@ export function connectorServiceListTables( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.listTables( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .listTables( + ListTablesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListTablesResponse); } export function getConnectorServiceListTablesQueryKey( @@ -370,14 +402,14 @@ export function getConnectorServiceListTablesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceListTablesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceListTables(client, request, { signal }); return { queryKey, @@ -391,10 +423,10 @@ export function createConnectorServiceListTables( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListTablesQueryOptions( client, request, @@ -410,11 +442,16 @@ export function connectorServiceGetTable( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.connectorService.getTable( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.connectorService + .getTable( + GetTableRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetTableResponse); } export function getConnectorServiceGetTableQueryKey( @@ -428,14 +465,14 @@ export function getConnectorServiceGetTableQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getConnectorServiceGetTableQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => connectorServiceGetTable(client, request, { signal }); return { queryKey, @@ -449,10 +486,10 @@ export function createConnectorServiceGetTable( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceGetTableQueryOptions( client, request, diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts index 3370d890d54..084ddfe39b3 100644 --- a/web-common/src/runtime-client/v2/gen/query-service.ts +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -1,7 +1,7 @@ // Generated by generate-query-hooks.ts — DO NOT EDIT import type { RuntimeClient } from "../runtime-client"; -import type { PartialMessage } from "@bufbuild/protobuf"; +import type { PartialMessage, JsonValue } from "@bufbuild/protobuf"; import { createQuery, createMutation, @@ -13,69 +13,90 @@ import { type CreateMutationOptions, type CreateMutationResult, } from "@tanstack/svelte-query"; +import type { + V1ColumnCardinalityRequest, + V1ColumnCardinalityResponse, + V1ColumnDescriptiveStatisticsRequest, + V1ColumnDescriptiveStatisticsResponse, + V1ColumnNullCountRequest, + V1ColumnNullCountResponse, + V1ColumnNumericHistogramRequest, + V1ColumnNumericHistogramResponse, + V1ColumnRollupIntervalRequest, + V1ColumnRollupIntervalResponse, + V1ColumnRugHistogramRequest, + V1ColumnRugHistogramResponse, + V1ColumnTimeGrainRequest, + V1ColumnTimeGrainResponse, + V1ColumnTimeRangeRequest, + V1ColumnTimeRangeResponse, + V1ColumnTimeSeriesRequest, + V1ColumnTimeSeriesResponse, + V1ColumnTopKRequest, + V1ColumnTopKResponse, + V1ConvertExpressionToMetricsSQLResponse, + V1ExportReportResponse, + V1ExportResponse, + V1MetricsViewAggregationRequest, + V1MetricsViewAggregationResponse, + V1MetricsViewAnnotationsResponse, + V1MetricsViewComparisonRequest, + V1MetricsViewComparisonResponse, + V1MetricsViewRowsRequest, + V1MetricsViewRowsResponse, + V1MetricsViewSchemaResponse, + V1MetricsViewSearchResponse, + V1MetricsViewTimeRangeResponse, + V1MetricsViewTimeRangesResponse, + V1MetricsViewTimeSeriesRequest, + V1MetricsViewTimeSeriesResponse, + V1MetricsViewToplistRequest, + V1MetricsViewToplistResponse, + V1MetricsViewTotalsRequest, + V1MetricsViewTotalsResponse, + V1QueryResponse, + V1ResolveCanvasResponse, + V1ResolveComponentResponse, + V1ResolveTemplatedStringResponse, + V1TableCardinalityRequest, + V1TableCardinalityResponse, + V1TableColumnsRequest, + V1TableColumnsResponse, + V1TableRowsRequest, + V1TableRowsResponse, +} from "../../gen/index.schemas"; import { ColumnCardinalityRequest, - ColumnCardinalityResponse, ColumnDescriptiveStatisticsRequest, - ColumnDescriptiveStatisticsResponse, ColumnNullCountRequest, - ColumnNullCountResponse, ColumnNumericHistogramRequest, - ColumnNumericHistogramResponse, ColumnRollupIntervalRequest, - ColumnRollupIntervalResponse, ColumnRugHistogramRequest, - ColumnRugHistogramResponse, ColumnTimeGrainRequest, - ColumnTimeGrainResponse, ColumnTimeRangeRequest, - ColumnTimeRangeResponse, ColumnTimeSeriesRequest, - ColumnTimeSeriesResponse, ColumnTopKRequest, - ColumnTopKResponse, ConvertExpressionToMetricsSQLRequest, - ConvertExpressionToMetricsSQLResponse, ExportReportRequest, - ExportReportResponse, ExportRequest, - ExportResponse, MetricsViewAggregationRequest, - MetricsViewAggregationResponse, MetricsViewAnnotationsRequest, - MetricsViewAnnotationsResponse, MetricsViewComparisonRequest, - MetricsViewComparisonResponse, MetricsViewRowsRequest, - MetricsViewRowsResponse, MetricsViewSchemaRequest, - MetricsViewSchemaResponse, MetricsViewSearchRequest, - MetricsViewSearchResponse, MetricsViewTimeRangeRequest, - MetricsViewTimeRangeResponse, MetricsViewTimeRangesRequest, - MetricsViewTimeRangesResponse, MetricsViewTimeSeriesRequest, - MetricsViewTimeSeriesResponse, MetricsViewToplistRequest, - MetricsViewToplistResponse, MetricsViewTotalsRequest, - MetricsViewTotalsResponse, QueryRequest, - QueryResponse, ResolveCanvasRequest, - ResolveCanvasResponse, ResolveComponentRequest, - ResolveComponentResponse, ResolveTemplatedStringRequest, - ResolveTemplatedStringResponse, TableCardinalityRequest, - TableCardinalityResponse, TableColumnsRequest, - TableColumnsResponse, TableRowsRequest, - TableRowsResponse, } from "../../../proto/gen/rill/runtime/v1/queries_pb"; /** @@ -83,18 +104,23 @@ import { */ export function queryServiceMetricsViewAggregation( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewAggregation( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewAggregation( + MetricsViewAggregationRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewAggregationResponse); } export function getQueryServiceMetricsViewAggregationQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -106,17 +132,20 @@ export function getQueryServiceMetricsViewAggregationQueryKey( export function getQueryServiceMetricsViewAggregationQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewAggregationQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceMetricsViewAggregation(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceMetricsViewAggregation(client, request, { signal }); return { queryKey, queryFn, @@ -127,12 +156,12 @@ export function getQueryServiceMetricsViewAggregationQueryOptions( export function createQueryServiceMetricsViewAggregation( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewAggregationQueryOptions( client, request, @@ -146,18 +175,23 @@ export function createQueryServiceMetricsViewAggregation( */ export function queryServiceMetricsViewToplist( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewToplist( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewToplist( + MetricsViewToplistRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewToplistResponse); } export function getQueryServiceMetricsViewToplistQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -169,16 +203,16 @@ export function getQueryServiceMetricsViewToplistQueryKey( export function getQueryServiceMetricsViewToplistQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceMetricsViewToplistQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceMetricsViewToplist(client, request, { signal }); return { queryKey, @@ -190,12 +224,12 @@ export function getQueryServiceMetricsViewToplistQueryOptions( export function createQueryServiceMetricsViewToplist( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewToplistQueryOptions( client, request, @@ -209,18 +243,23 @@ export function createQueryServiceMetricsViewToplist( */ export function queryServiceMetricsViewComparison( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewComparison( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewComparison( + MetricsViewComparisonRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewComparisonResponse); } export function getQueryServiceMetricsViewComparisonQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -232,17 +271,20 @@ export function getQueryServiceMetricsViewComparisonQueryKey( export function getQueryServiceMetricsViewComparisonQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewComparisonQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceMetricsViewComparison(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceMetricsViewComparison(client, request, { signal }); return { queryKey, queryFn, @@ -253,12 +295,12 @@ export function getQueryServiceMetricsViewComparisonQueryOptions( export function createQueryServiceMetricsViewComparison( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewComparisonQueryOptions( client, request, @@ -272,18 +314,23 @@ export function createQueryServiceMetricsViewComparison( */ export function queryServiceMetricsViewTimeSeries( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewTimeSeries( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewTimeSeries( + MetricsViewTimeSeriesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewTimeSeriesResponse); } export function getQueryServiceMetricsViewTimeSeriesQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -295,17 +342,20 @@ export function getQueryServiceMetricsViewTimeSeriesQueryKey( export function getQueryServiceMetricsViewTimeSeriesQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewTimeSeriesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceMetricsViewTimeSeries(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceMetricsViewTimeSeries(client, request, { signal }); return { queryKey, queryFn, @@ -316,12 +366,12 @@ export function getQueryServiceMetricsViewTimeSeriesQueryOptions( export function createQueryServiceMetricsViewTimeSeries( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTimeSeriesQueryOptions( client, request, @@ -335,18 +385,23 @@ export function createQueryServiceMetricsViewTimeSeries( */ export function queryServiceMetricsViewTotals( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewTotals( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewTotals( + MetricsViewTotalsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewTotalsResponse); } export function getQueryServiceMetricsViewTotalsQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -358,16 +413,16 @@ export function getQueryServiceMetricsViewTotalsQueryKey( export function getQueryServiceMetricsViewTotalsQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceMetricsViewTotalsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceMetricsViewTotals(client, request, { signal }); return { queryKey, @@ -379,12 +434,12 @@ export function getQueryServiceMetricsViewTotalsQueryOptions( export function createQueryServiceMetricsViewTotals( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTotalsQueryOptions( client, request, @@ -398,18 +453,23 @@ export function createQueryServiceMetricsViewTotals( */ export function queryServiceMetricsViewRows( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewRows( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewRows( + MetricsViewRowsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewRowsResponse); } export function getQueryServiceMetricsViewRowsQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -421,16 +481,16 @@ export function getQueryServiceMetricsViewRowsQueryKey( export function getQueryServiceMetricsViewRowsQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceMetricsViewRowsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceMetricsViewRows(client, request, { signal }); return { queryKey, @@ -442,12 +502,12 @@ export function getQueryServiceMetricsViewRowsQueryOptions( export function createQueryServiceMetricsViewRows( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewRowsQueryOptions( client, request, @@ -463,11 +523,16 @@ export function queryServiceMetricsViewTimeRange( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewTimeRange( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewTimeRange( + MetricsViewTimeRangeRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewTimeRangeResponse); } export function getQueryServiceMetricsViewTimeRangeQueryKey( @@ -486,14 +551,14 @@ export function getQueryServiceMetricsViewTimeRangeQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceMetricsViewTimeRangeQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceMetricsViewTimeRange(client, request, { signal }); return { queryKey, @@ -507,10 +572,10 @@ export function createQueryServiceMetricsViewTimeRange( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTimeRangeQueryOptions( client, request, @@ -526,11 +591,16 @@ export function queryServiceMetricsViewSchema( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewSchema( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewSchema( + MetricsViewSchemaRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewSchemaResponse); } export function getQueryServiceMetricsViewSchemaQueryKey( @@ -549,14 +619,14 @@ export function getQueryServiceMetricsViewSchemaQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceMetricsViewSchemaQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceMetricsViewSchema(client, request, { signal }); return { queryKey, @@ -570,10 +640,10 @@ export function createQueryServiceMetricsViewSchema( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewSchemaQueryOptions( client, request, @@ -589,11 +659,16 @@ export function queryServiceMetricsViewSearch( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewSearch( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewSearch( + MetricsViewSearchRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewSearchResponse); } export function getQueryServiceMetricsViewSearchQueryKey( @@ -612,14 +687,14 @@ export function getQueryServiceMetricsViewSearchQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceMetricsViewSearchQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceMetricsViewSearch(client, request, { signal }); return { queryKey, @@ -633,10 +708,10 @@ export function createQueryServiceMetricsViewSearch( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewSearchQueryOptions( client, request, @@ -652,11 +727,16 @@ export function queryServiceMetricsViewTimeRanges( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewTimeRanges( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewTimeRanges( + MetricsViewTimeRangesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewTimeRangesResponse); } export function getQueryServiceMetricsViewTimeRangesQueryKey( @@ -675,15 +755,18 @@ export function getQueryServiceMetricsViewTimeRangesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewTimeRangesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceMetricsViewTimeRanges(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceMetricsViewTimeRanges(client, request, { signal }); return { queryKey, queryFn, @@ -696,10 +779,10 @@ export function createQueryServiceMetricsViewTimeRanges( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTimeRangesQueryOptions( client, request, @@ -715,11 +798,16 @@ export function queryServiceMetricsViewAnnotations( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.metricsViewAnnotations( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .metricsViewAnnotations( + MetricsViewAnnotationsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1MetricsViewAnnotationsResponse); } export function getQueryServiceMetricsViewAnnotationsQueryKey( @@ -738,15 +826,18 @@ export function getQueryServiceMetricsViewAnnotationsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewAnnotationsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceMetricsViewAnnotations(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceMetricsViewAnnotations(client, request, { signal }); return { queryKey, queryFn, @@ -759,10 +850,10 @@ export function createQueryServiceMetricsViewAnnotations( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewAnnotationsQueryOptions( client, request, @@ -781,11 +872,18 @@ export function queryServiceConvertExpressionToMetricsSQL( "instanceId" >, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.convertExpressionToMetricsSQL( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .convertExpressionToMetricsSQL( + ConvertExpressionToMetricsSQLRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then( + (r) => r.toJson() as unknown as V1ConvertExpressionToMetricsSQLResponse, + ); } export function getQueryServiceConvertExpressionToMetricsSQLQueryKey( @@ -810,16 +908,18 @@ export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( "instanceId" >, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceConvertExpressionToMetricsSQLQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ + const queryFn: QueryFunction = ({ signal, }) => queryServiceConvertExpressionToMetricsSQL(client, request, { signal }); return { @@ -837,10 +937,12 @@ export function createQueryServiceConvertExpressionToMetricsSQL( "instanceId" >, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceConvertExpressionToMetricsSQLQueryOptions( client, request, @@ -856,11 +958,16 @@ export function queryServiceResolveCanvas( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.resolveCanvas( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .resolveCanvas( + ResolveCanvasRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ResolveCanvasResponse); } export function getQueryServiceResolveCanvasQueryKey( @@ -874,14 +981,14 @@ export function getQueryServiceResolveCanvasQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceResolveCanvasQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceResolveCanvas(client, request, { signal }); return { queryKey, @@ -895,10 +1002,10 @@ export function createQueryServiceResolveCanvas( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceResolveCanvasQueryOptions( client, request, @@ -914,11 +1021,16 @@ export function queryServiceResolveComponent( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.resolveComponent( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .resolveComponent( + ResolveComponentRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ResolveComponentResponse); } export function getQueryServiceResolveComponentQueryKey( @@ -937,14 +1049,14 @@ export function getQueryServiceResolveComponentQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceResolveComponentQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceResolveComponent(client, request, { signal }); return { queryKey, @@ -958,10 +1070,10 @@ export function createQueryServiceResolveComponent( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceResolveComponentQueryOptions( client, request, @@ -977,11 +1089,16 @@ export function queryServiceResolveTemplatedString( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.resolveTemplatedString( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .resolveTemplatedString( + ResolveTemplatedStringRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ResolveTemplatedStringResponse); } export function getQueryServiceResolveTemplatedStringQueryKey( @@ -1000,15 +1117,18 @@ export function getQueryServiceResolveTemplatedStringQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceResolveTemplatedStringQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceResolveTemplatedString(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceResolveTemplatedString(client, request, { signal }); return { queryKey, queryFn, @@ -1021,10 +1141,10 @@ export function createQueryServiceResolveTemplatedString( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceResolveTemplatedStringQueryOptions( client, request, @@ -1038,18 +1158,23 @@ export function createQueryServiceResolveTemplatedString( */ export function queryServiceColumnRollupInterval( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnRollupInterval( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnRollupInterval( + ColumnRollupIntervalRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnRollupIntervalResponse); } export function getQueryServiceColumnRollupIntervalQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1061,16 +1186,16 @@ export function getQueryServiceColumnRollupIntervalQueryKey( export function getQueryServiceColumnRollupIntervalQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnRollupIntervalQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnRollupInterval(client, request, { signal }); return { queryKey, @@ -1082,12 +1207,12 @@ export function getQueryServiceColumnRollupIntervalQueryOptions( export function createQueryServiceColumnRollupInterval( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnRollupIntervalQueryOptions( client, request, @@ -1101,34 +1226,39 @@ export function createQueryServiceColumnRollupInterval( */ export function queryServiceColumnTopK( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnTopK( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnTopK( + ColumnTopKRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnTopKResponse); } export function getQueryServiceColumnTopKQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return ["QueryService", "columnTopK", instanceId, request ?? {}] as const; } export function getQueryServiceColumnTopKQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnTopKQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnTopK(client, request, { signal }); return { queryKey, @@ -1140,12 +1270,12 @@ export function getQueryServiceColumnTopKQueryOptions( export function createQueryServiceColumnTopK( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTopKQueryOptions( client, request, @@ -1159,18 +1289,23 @@ export function createQueryServiceColumnTopK( */ export function queryServiceColumnNullCount( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnNullCount( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnNullCount( + ColumnNullCountRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnNullCountResponse); } export function getQueryServiceColumnNullCountQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1182,16 +1317,16 @@ export function getQueryServiceColumnNullCountQueryKey( export function getQueryServiceColumnNullCountQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnNullCountQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnNullCount(client, request, { signal }); return { queryKey, @@ -1203,12 +1338,12 @@ export function getQueryServiceColumnNullCountQueryOptions( export function createQueryServiceColumnNullCount( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnNullCountQueryOptions( client, request, @@ -1222,24 +1357,25 @@ export function createQueryServiceColumnNullCount( */ export function queryServiceColumnDescriptiveStatistics( client: RuntimeClient, - request: Omit< - PartialMessage, - "instanceId" - >, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnDescriptiveStatistics( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnDescriptiveStatistics( + ColumnDescriptiveStatisticsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then( + (r) => r.toJson() as unknown as V1ColumnDescriptiveStatisticsResponse, + ); } export function getQueryServiceColumnDescriptiveStatisticsQueryKey( instanceId: string, - request?: Omit< - PartialMessage, - "instanceId" - >, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1251,21 +1387,18 @@ export function getQueryServiceColumnDescriptiveStatisticsQueryKey( export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( client: RuntimeClient, - request: Omit< - PartialMessage, - "instanceId" - >, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceColumnDescriptiveStatisticsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ + const queryFn: QueryFunction = ({ signal, }) => queryServiceColumnDescriptiveStatistics(client, request, { signal }); return { @@ -1278,15 +1411,12 @@ export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( export function createQueryServiceColumnDescriptiveStatistics( client: RuntimeClient, - request: Omit< - PartialMessage, - "instanceId" - >, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnDescriptiveStatisticsQueryOptions( client, request, @@ -1300,18 +1430,23 @@ export function createQueryServiceColumnDescriptiveStatistics( */ export function queryServiceColumnTimeGrain( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnTimeGrain( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnTimeGrain( + ColumnTimeGrainRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnTimeGrainResponse); } export function getQueryServiceColumnTimeGrainQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1323,16 +1458,16 @@ export function getQueryServiceColumnTimeGrainQueryKey( export function getQueryServiceColumnTimeGrainQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnTimeGrainQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnTimeGrain(client, request, { signal }); return { queryKey, @@ -1344,12 +1479,12 @@ export function getQueryServiceColumnTimeGrainQueryOptions( export function createQueryServiceColumnTimeGrain( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTimeGrainQueryOptions( client, request, @@ -1363,18 +1498,23 @@ export function createQueryServiceColumnTimeGrain( */ export function queryServiceColumnNumericHistogram( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnNumericHistogram( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnNumericHistogram( + ColumnNumericHistogramRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnNumericHistogramResponse); } export function getQueryServiceColumnNumericHistogramQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1386,17 +1526,20 @@ export function getQueryServiceColumnNumericHistogramQueryKey( export function getQueryServiceColumnNumericHistogramQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnNumericHistogramQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - queryServiceColumnNumericHistogram(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => queryServiceColumnNumericHistogram(client, request, { signal }); return { queryKey, queryFn, @@ -1407,12 +1550,12 @@ export function getQueryServiceColumnNumericHistogramQueryOptions( export function createQueryServiceColumnNumericHistogram( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnNumericHistogramQueryOptions( client, request, @@ -1426,18 +1569,23 @@ export function createQueryServiceColumnNumericHistogram( */ export function queryServiceColumnRugHistogram( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnRugHistogram( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnRugHistogram( + ColumnRugHistogramRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnRugHistogramResponse); } export function getQueryServiceColumnRugHistogramQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1449,16 +1597,16 @@ export function getQueryServiceColumnRugHistogramQueryKey( export function getQueryServiceColumnRugHistogramQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnRugHistogramQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnRugHistogram(client, request, { signal }); return { queryKey, @@ -1470,12 +1618,12 @@ export function getQueryServiceColumnRugHistogramQueryOptions( export function createQueryServiceColumnRugHistogram( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnRugHistogramQueryOptions( client, request, @@ -1489,18 +1637,23 @@ export function createQueryServiceColumnRugHistogram( */ export function queryServiceColumnTimeRange( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnTimeRange( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnTimeRange( + ColumnTimeRangeRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnTimeRangeResponse); } export function getQueryServiceColumnTimeRangeQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1512,16 +1665,16 @@ export function getQueryServiceColumnTimeRangeQueryKey( export function getQueryServiceColumnTimeRangeQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnTimeRangeQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnTimeRange(client, request, { signal }); return { queryKey, @@ -1533,12 +1686,12 @@ export function getQueryServiceColumnTimeRangeQueryOptions( export function createQueryServiceColumnTimeRange( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTimeRangeQueryOptions( client, request, @@ -1552,18 +1705,23 @@ export function createQueryServiceColumnTimeRange( */ export function queryServiceColumnCardinality( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnCardinality( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnCardinality( + ColumnCardinalityRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnCardinalityResponse); } export function getQueryServiceColumnCardinalityQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1575,16 +1733,16 @@ export function getQueryServiceColumnCardinalityQueryKey( export function getQueryServiceColumnCardinalityQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnCardinalityQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnCardinality(client, request, { signal }); return { queryKey, @@ -1596,12 +1754,12 @@ export function getQueryServiceColumnCardinalityQueryOptions( export function createQueryServiceColumnCardinality( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnCardinalityQueryOptions( client, request, @@ -1615,18 +1773,23 @@ export function createQueryServiceColumnCardinality( */ export function queryServiceColumnTimeSeries( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.columnTimeSeries( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .columnTimeSeries( + ColumnTimeSeriesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ColumnTimeSeriesResponse); } export function getQueryServiceColumnTimeSeriesQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1638,16 +1801,16 @@ export function getQueryServiceColumnTimeSeriesQueryKey( export function getQueryServiceColumnTimeSeriesQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceColumnTimeSeriesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceColumnTimeSeries(client, request, { signal }); return { queryKey, @@ -1659,12 +1822,12 @@ export function getQueryServiceColumnTimeSeriesQueryOptions( export function createQueryServiceColumnTimeSeries( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTimeSeriesQueryOptions( client, request, @@ -1678,18 +1841,23 @@ export function createQueryServiceColumnTimeSeries( */ export function queryServiceTableCardinality( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.tableCardinality( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .tableCardinality( + TableCardinalityRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1TableCardinalityResponse); } export function getQueryServiceTableCardinalityQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return [ "QueryService", @@ -1701,16 +1869,16 @@ export function getQueryServiceTableCardinalityQueryKey( export function getQueryServiceTableCardinalityQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceTableCardinalityQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceTableCardinality(client, request, { signal }); return { queryKey, @@ -1722,12 +1890,12 @@ export function getQueryServiceTableCardinalityQueryOptions( export function createQueryServiceTableCardinality( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceTableCardinalityQueryOptions( client, request, @@ -1741,34 +1909,39 @@ export function createQueryServiceTableCardinality( */ export function queryServiceTableColumns( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.tableColumns( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .tableColumns( + TableColumnsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1TableColumnsResponse); } export function getQueryServiceTableColumnsQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return ["QueryService", "tableColumns", instanceId, request ?? {}] as const; } export function getQueryServiceTableColumnsQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceTableColumnsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceTableColumns(client, request, { signal }); return { queryKey, @@ -1780,12 +1953,12 @@ export function getQueryServiceTableColumnsQueryOptions( export function createQueryServiceTableColumns( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceTableColumnsQueryOptions( client, request, @@ -1799,31 +1972,36 @@ export function createQueryServiceTableColumns( */ export function queryServiceTableRows( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { signal?: AbortSignal }, -): Promise { - return client.queryService.tableRows( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.queryService + .tableRows( + TableRowsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1TableRowsResponse); } export function getQueryServiceTableRowsQueryKey( instanceId: string, - request?: Omit, "instanceId">, + request?: Omit, ): QueryKey { return ["QueryService", "tableRows", instanceId, request ?? {}] as const; } export function getQueryServiceTableRowsQueryOptions( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getQueryServiceTableRowsQueryKey(client.instanceId, request); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => queryServiceTableRows(client, request, { signal }); return { queryKey, @@ -1835,12 +2013,12 @@ export function getQueryServiceTableRowsQueryOptions( export function createQueryServiceTableRows( client: RuntimeClient, - request: Omit, "instanceId">, + request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceTableRowsQueryOptions( client, request, @@ -1855,24 +2033,28 @@ export function createQueryServiceTableRows( export function queryServiceQuery( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.queryService.query({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.queryService + .query( + QueryRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1QueryResponse); } export function getQueryServiceQueryMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - QueryResponse, + V1QueryResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - QueryResponse, + V1QueryResponse, unknown, Omit, "instanceId"> > { @@ -1886,14 +2068,14 @@ export function createQueryServiceQueryMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - QueryResponse, + V1QueryResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - QueryResponse, + V1QueryResponse, unknown, Omit, "instanceId"> > { @@ -1907,24 +2089,28 @@ export function createQueryServiceQueryMutation( export function queryServiceExport( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.queryService.export({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.queryService + .export( + ExportRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1ExportResponse); } export function getQueryServiceExportMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ExportResponse, + V1ExportResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - ExportResponse, + V1ExportResponse, unknown, Omit, "instanceId"> > { @@ -1938,14 +2124,14 @@ export function createQueryServiceExportMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ExportResponse, + V1ExportResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - ExportResponse, + V1ExportResponse, unknown, Omit, "instanceId"> > { @@ -1959,24 +2145,28 @@ export function createQueryServiceExportMutation( export function queryServiceExportReport( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.queryService.exportReport({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.queryService + .exportReport( + ExportReportRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1ExportReportResponse); } export function getQueryServiceExportReportMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ExportReportResponse, + V1ExportReportResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - ExportReportResponse, + V1ExportReportResponse, unknown, Omit, "instanceId"> > { @@ -1990,14 +2180,14 @@ export function createQueryServiceExportReportMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ExportReportResponse, + V1ExportReportResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - ExportReportResponse, + V1ExportReportResponse, unknown, Omit, "instanceId"> > { diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts index 9eec39ca3d7..fee8fd98ab3 100644 --- a/web-common/src/runtime-client/v2/gen/runtime-service.ts +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -1,7 +1,7 @@ // Generated by generate-query-hooks.ts — DO NOT EDIT import type { RuntimeClient } from "../runtime-client"; -import type { PartialMessage } from "@bufbuild/protobuf"; +import type { PartialMessage, JsonValue } from "@bufbuild/protobuf"; import { createQuery, createMutation, @@ -13,105 +13,109 @@ import { type CreateMutationOptions, type CreateMutationResult, } from "@tanstack/svelte-query"; +import type { + V1AnalyzeConnectorsResponse, + V1AnalyzeVariablesResponse, + V1CompleteResponse, + V1CreateDirectoryResponse, + V1CreateInstanceRequest, + V1CreateInstanceResponse, + V1CreateTriggerResponse, + V1DeleteFileResponse, + V1DeleteInstanceResponse, + V1EditInstanceResponse, + V1ForkConversationResponse, + V1GenerateCanvasFileResponse, + V1GenerateMetricsViewFileResponse, + V1GenerateRendererResponse, + V1GenerateResolverResponse, + V1GetConversationResponse, + V1GetExploreResponse, + V1GetFileResponse, + V1GetInstanceResponse, + V1GetLogsResponse, + V1GetModelPartitionsResponse, + V1GetResourceResponse, + V1GitCommitResponse, + V1GitMergeToBranchResponse, + V1GitPullResponse, + V1GitPushResponse, + V1GitStatusResponse, + V1GitSwitchBranchResponse, + V1HealthResponse, + V1InstanceHealthResponse, + V1IssueDevJWTRequest, + V1IssueDevJWTResponse, + V1ListConnectorDriversResponse, + V1ListConversationsResponse, + V1ListExamplesResponse, + V1ListFilesResponse, + V1ListGitBranchesResponse, + V1ListGitCommitsResponse, + V1ListInstancesResponse, + V1ListNotifierConnectorsResponse, + V1ListResourcesResponse, + V1ListToolsResponse, + V1PingResponse, + V1PutFileResponse, + V1QueryResolverResponse, + V1ReloadConfigResponse, + V1RenameFileResponse, + V1RestoreGitCommitResponse, + V1ShareConversationResponse, + V1UnpackEmptyResponse, + V1UnpackExampleResponse, +} from "../../gen/index.schemas"; import { AnalyzeConnectorsRequest, - AnalyzeConnectorsResponse, AnalyzeVariablesRequest, - AnalyzeVariablesResponse, CompleteRequest, - CompleteResponse, CreateDirectoryRequest, - CreateDirectoryResponse, CreateInstanceRequest, - CreateInstanceResponse, CreateTriggerRequest, - CreateTriggerResponse, DeleteFileRequest, - DeleteFileResponse, DeleteInstanceRequest, - DeleteInstanceResponse, EditInstanceRequest, - EditInstanceResponse, ForkConversationRequest, - ForkConversationResponse, GenerateCanvasFileRequest, - GenerateCanvasFileResponse, GenerateMetricsViewFileRequest, - GenerateMetricsViewFileResponse, GenerateRendererRequest, - GenerateRendererResponse, GenerateResolverRequest, - GenerateResolverResponse, GetConversationRequest, - GetConversationResponse, GetExploreRequest, - GetExploreResponse, GetFileRequest, - GetFileResponse, GetInstanceRequest, - GetInstanceResponse, GetLogsRequest, - GetLogsResponse, GetModelPartitionsRequest, - GetModelPartitionsResponse, GetResourceRequest, - GetResourceResponse, GitCommitRequest, - GitCommitResponse, GitMergeToBranchRequest, - GitMergeToBranchResponse, GitPullRequest, - GitPullResponse, GitPushRequest, - GitPushResponse, GitStatusRequest, - GitStatusResponse, GitSwitchBranchRequest, - GitSwitchBranchResponse, HealthRequest, - HealthResponse, InstanceHealthRequest, - InstanceHealthResponse, IssueDevJWTRequest, - IssueDevJWTResponse, ListConnectorDriversRequest, - ListConnectorDriversResponse, ListConversationsRequest, - ListConversationsResponse, ListExamplesRequest, - ListExamplesResponse, ListFilesRequest, - ListFilesResponse, ListGitBranchesRequest, - ListGitBranchesResponse, ListGitCommitsRequest, - ListGitCommitsResponse, ListInstancesRequest, - ListInstancesResponse, ListNotifierConnectorsRequest, - ListNotifierConnectorsResponse, ListResourcesRequest, - ListResourcesResponse, ListToolsRequest, - ListToolsResponse, PingRequest, - PingResponse, PutFileRequest, - PutFileResponse, QueryResolverRequest, - QueryResolverResponse, ReloadConfigRequest, - ReloadConfigResponse, RenameFileRequest, - RenameFileResponse, RestoreGitCommitRequest, - RestoreGitCommitResponse, ShareConversationRequest, - ShareConversationResponse, UnpackEmptyRequest, - UnpackEmptyResponse, UnpackExampleRequest, - UnpackExampleResponse, } from "../../../proto/gen/rill/runtime/v1/api_pb"; /** @@ -121,8 +125,12 @@ export function runtimeServicePing( client: RuntimeClient, request: PartialMessage, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.ping(request, { signal: options?.signal }); +): Promise { + return client.runtimeService + .ping(PingRequest.fromJson(request as unknown as JsonValue), { + signal: options?.signal, + }) + .then((r) => r.toJson() as unknown as V1PingResponse); } export function getRuntimeServicePingQueryKey( @@ -136,11 +144,11 @@ export function getRuntimeServicePingQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServicePingQueryKey(client.instanceId, request); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServicePing(client, request, { signal }); return { queryKey, @@ -154,10 +162,10 @@ export function createRuntimeServicePing( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServicePingQueryOptions( client, request, @@ -173,8 +181,12 @@ export function runtimeServiceHealth( client: RuntimeClient, request: PartialMessage, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.health(request, { signal: options?.signal }); +): Promise { + return client.runtimeService + .health(HealthRequest.fromJson(request as unknown as JsonValue), { + signal: options?.signal, + }) + .then((r) => r.toJson() as unknown as V1HealthResponse); } export function getRuntimeServiceHealthQueryKey( @@ -188,11 +200,11 @@ export function getRuntimeServiceHealthQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceHealthQueryKey(client.instanceId, request); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceHealth(client, request, { signal }); return { queryKey, @@ -206,10 +218,10 @@ export function createRuntimeServiceHealth( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceHealthQueryOptions( client, request, @@ -225,11 +237,16 @@ export function runtimeServiceInstanceHealth( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.instanceHealth( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .instanceHealth( + InstanceHealthRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1InstanceHealthResponse); } export function getRuntimeServiceInstanceHealthQueryKey( @@ -248,14 +265,14 @@ export function getRuntimeServiceInstanceHealthQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceInstanceHealthQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceInstanceHealth(client, request, { signal }); return { queryKey, @@ -269,10 +286,10 @@ export function createRuntimeServiceInstanceHealth( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceInstanceHealthQueryOptions( client, request, @@ -288,10 +305,13 @@ export function runtimeServiceListInstances( client: RuntimeClient, request: PartialMessage, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listInstances(request, { - signal: options?.signal, - }); +): Promise { + return client.runtimeService + .listInstances( + ListInstancesRequest.fromJson(request as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListInstancesResponse); } export function getRuntimeServiceListInstancesQueryKey( @@ -310,14 +330,14 @@ export function getRuntimeServiceListInstancesQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListInstancesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListInstances(client, request, { signal }); return { queryKey, @@ -331,10 +351,10 @@ export function createRuntimeServiceListInstances( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListInstancesQueryOptions( client, request, @@ -350,11 +370,16 @@ export function runtimeServiceGetInstance( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getInstance( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getInstance( + GetInstanceRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetInstanceResponse); } export function getRuntimeServiceGetInstanceQueryKey( @@ -368,14 +393,14 @@ export function getRuntimeServiceGetInstanceQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetInstanceQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetInstance(client, request, { signal }); return { queryKey, @@ -389,10 +414,10 @@ export function createRuntimeServiceGetInstance( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetInstanceQueryOptions( client, request, @@ -408,11 +433,16 @@ export function runtimeServiceListFiles( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listFiles( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listFiles( + ListFilesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListFilesResponse); } export function getRuntimeServiceListFilesQueryKey( @@ -426,14 +456,14 @@ export function getRuntimeServiceListFilesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListFilesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListFiles(client, request, { signal }); return { queryKey, @@ -447,10 +477,10 @@ export function createRuntimeServiceListFiles( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListFilesQueryOptions( client, request, @@ -466,11 +496,16 @@ export function runtimeServiceGetFile( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getFile( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getFile( + GetFileRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetFileResponse); } export function getRuntimeServiceGetFileQueryKey( @@ -484,11 +519,11 @@ export function getRuntimeServiceGetFileQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetFileQueryKey(client.instanceId, request); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetFile(client, request, { signal }); return { queryKey, @@ -502,10 +537,10 @@ export function createRuntimeServiceGetFile( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetFileQueryOptions( client, request, @@ -521,10 +556,13 @@ export function runtimeServiceListExamples( client: RuntimeClient, request: PartialMessage, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listExamples(request, { - signal: options?.signal, - }); +): Promise { + return client.runtimeService + .listExamples( + ListExamplesRequest.fromJson(request as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListExamplesResponse); } export function getRuntimeServiceListExamplesQueryKey( @@ -538,14 +576,14 @@ export function getRuntimeServiceListExamplesQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListExamplesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListExamples(client, request, { signal }); return { queryKey, @@ -559,10 +597,10 @@ export function createRuntimeServiceListExamples( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListExamplesQueryOptions( client, request, @@ -578,11 +616,16 @@ export function runtimeServiceQueryResolver( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.queryResolver( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .queryResolver( + QueryResolverRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1QueryResolverResponse); } export function getRuntimeServiceQueryResolverQueryKey( @@ -601,14 +644,14 @@ export function getRuntimeServiceQueryResolverQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceQueryResolverQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceQueryResolver(client, request, { signal }); return { queryKey, @@ -622,10 +665,10 @@ export function createRuntimeServiceQueryResolver( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceQueryResolverQueryOptions( client, request, @@ -641,11 +684,16 @@ export function runtimeServiceGetLogs( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getLogs( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getLogs( + GetLogsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetLogsResponse); } export function getRuntimeServiceGetLogsQueryKey( @@ -659,11 +707,11 @@ export function getRuntimeServiceGetLogsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetLogsQueryKey(client.instanceId, request); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetLogs(client, request, { signal }); return { queryKey, @@ -677,10 +725,10 @@ export function createRuntimeServiceGetLogs( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetLogsQueryOptions( client, request, @@ -696,11 +744,16 @@ export function runtimeServiceListResources( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listResources( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listResources( + ListResourcesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListResourcesResponse); } export function getRuntimeServiceListResourcesQueryKey( @@ -719,14 +772,14 @@ export function getRuntimeServiceListResourcesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListResourcesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListResources(client, request, { signal }); return { queryKey, @@ -740,10 +793,10 @@ export function createRuntimeServiceListResources( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListResourcesQueryOptions( client, request, @@ -759,11 +812,16 @@ export function runtimeServiceGetResource( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getResource( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getResource( + GetResourceRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetResourceResponse); } export function getRuntimeServiceGetResourceQueryKey( @@ -777,14 +835,14 @@ export function getRuntimeServiceGetResourceQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetResourceQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetResource(client, request, { signal }); return { queryKey, @@ -798,10 +856,10 @@ export function createRuntimeServiceGetResource( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetResourceQueryOptions( client, request, @@ -817,11 +875,16 @@ export function runtimeServiceGetExplore( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getExplore( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getExplore( + GetExploreRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetExploreResponse); } export function getRuntimeServiceGetExploreQueryKey( @@ -835,14 +898,14 @@ export function getRuntimeServiceGetExploreQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetExploreQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetExplore(client, request, { signal }); return { queryKey, @@ -856,10 +919,10 @@ export function createRuntimeServiceGetExplore( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetExploreQueryOptions( client, request, @@ -875,11 +938,16 @@ export function runtimeServiceGetModelPartitions( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getModelPartitions( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getModelPartitions( + GetModelPartitionsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetModelPartitionsResponse); } export function getRuntimeServiceGetModelPartitionsQueryKey( @@ -898,14 +966,14 @@ export function getRuntimeServiceGetModelPartitionsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetModelPartitionsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetModelPartitions(client, request, { signal }); return { queryKey, @@ -919,10 +987,10 @@ export function createRuntimeServiceGetModelPartitions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetModelPartitionsQueryOptions( client, request, @@ -938,10 +1006,13 @@ export function runtimeServiceListConnectorDrivers( client: RuntimeClient, request: PartialMessage, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listConnectorDrivers(request, { - signal: options?.signal, - }); +): Promise { + return client.runtimeService + .listConnectorDrivers( + ListConnectorDriversRequest.fromJson(request as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListConnectorDriversResponse); } export function getRuntimeServiceListConnectorDriversQueryKey( @@ -960,14 +1031,14 @@ export function getRuntimeServiceListConnectorDriversQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListConnectorDriversQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListConnectorDrivers(client, request, { signal }); return { queryKey, @@ -981,10 +1052,10 @@ export function createRuntimeServiceListConnectorDrivers( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListConnectorDriversQueryOptions( client, request, @@ -1000,11 +1071,16 @@ export function runtimeServiceAnalyzeConnectors( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.analyzeConnectors( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .analyzeConnectors( + AnalyzeConnectorsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1AnalyzeConnectorsResponse); } export function getRuntimeServiceAnalyzeConnectorsQueryKey( @@ -1023,14 +1099,14 @@ export function getRuntimeServiceAnalyzeConnectorsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceAnalyzeConnectorsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceAnalyzeConnectors(client, request, { signal }); return { queryKey, @@ -1044,10 +1120,10 @@ export function createRuntimeServiceAnalyzeConnectors( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceAnalyzeConnectorsQueryOptions( client, request, @@ -1063,11 +1139,16 @@ export function runtimeServiceListNotifierConnectors( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listNotifierConnectors( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listNotifierConnectors( + ListNotifierConnectorsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListNotifierConnectorsResponse); } export function getRuntimeServiceListNotifierConnectorsQueryKey( @@ -1086,15 +1167,18 @@ export function getRuntimeServiceListNotifierConnectorsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListNotifierConnectorsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => - runtimeServiceListNotifierConnectors(client, request, { signal }); + const queryFn: QueryFunction = ({ + signal, + }) => runtimeServiceListNotifierConnectors(client, request, { signal }); return { queryKey, queryFn, @@ -1107,10 +1191,10 @@ export function createRuntimeServiceListNotifierConnectors( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListNotifierConnectorsQueryOptions( client, request, @@ -1126,11 +1210,16 @@ export function runtimeServiceListConversations( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listConversations( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listConversations( + ListConversationsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListConversationsResponse); } export function getRuntimeServiceListConversationsQueryKey( @@ -1149,14 +1238,14 @@ export function getRuntimeServiceListConversationsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListConversationsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListConversations(client, request, { signal }); return { queryKey, @@ -1170,10 +1259,10 @@ export function createRuntimeServiceListConversations( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListConversationsQueryOptions( client, request, @@ -1189,11 +1278,16 @@ export function runtimeServiceGetConversation( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.getConversation( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .getConversation( + GetConversationRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1GetConversationResponse); } export function getRuntimeServiceGetConversationQueryKey( @@ -1212,14 +1306,14 @@ export function getRuntimeServiceGetConversationQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceGetConversationQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetConversation(client, request, { signal }); return { queryKey, @@ -1233,10 +1327,10 @@ export function createRuntimeServiceGetConversation( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetConversationQueryOptions( client, request, @@ -1252,11 +1346,16 @@ export function runtimeServiceListTools( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listTools( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listTools( + ListToolsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListToolsResponse); } export function getRuntimeServiceListToolsQueryKey( @@ -1270,14 +1369,14 @@ export function getRuntimeServiceListToolsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListToolsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListTools(client, request, { signal }); return { queryKey, @@ -1291,10 +1390,10 @@ export function createRuntimeServiceListTools( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListToolsQueryOptions( client, request, @@ -1308,33 +1407,35 @@ export function createRuntimeServiceListTools( */ export function runtimeServiceIssueDevJWT( client: RuntimeClient, - request: PartialMessage, + request: V1IssueDevJWTRequest, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.issueDevJWT(request, { - signal: options?.signal, - }); +): Promise { + return client.runtimeService + .issueDevJWT(IssueDevJWTRequest.fromJson(request as unknown as JsonValue), { + signal: options?.signal, + }) + .then((r) => r.toJson() as unknown as V1IssueDevJWTResponse); } export function getRuntimeServiceIssueDevJWTQueryKey( instanceId: string, - request?: PartialMessage, + request?: V1IssueDevJWTRequest, ): QueryKey { return ["RuntimeService", "issueDevJWT", instanceId, request ?? {}] as const; } export function getRuntimeServiceIssueDevJWTQueryOptions( client: RuntimeClient, - request: PartialMessage, + request: V1IssueDevJWTRequest, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceIssueDevJWTQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceIssueDevJWT(client, request, { signal }); return { queryKey, @@ -1346,12 +1447,12 @@ export function getRuntimeServiceIssueDevJWTQueryOptions( export function createRuntimeServiceIssueDevJWT( client: RuntimeClient, - request: PartialMessage, + request: V1IssueDevJWTRequest, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceIssueDevJWTQueryOptions( client, request, @@ -1367,11 +1468,16 @@ export function runtimeServiceAnalyzeVariables( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.analyzeVariables( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .analyzeVariables( + AnalyzeVariablesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1AnalyzeVariablesResponse); } export function getRuntimeServiceAnalyzeVariablesQueryKey( @@ -1390,14 +1496,14 @@ export function getRuntimeServiceAnalyzeVariablesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceAnalyzeVariablesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceAnalyzeVariables(client, request, { signal }); return { queryKey, @@ -1411,10 +1517,10 @@ export function createRuntimeServiceAnalyzeVariables( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceAnalyzeVariablesQueryOptions( client, request, @@ -1430,11 +1536,16 @@ export function runtimeServiceListGitCommits( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listGitCommits( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listGitCommits( + ListGitCommitsRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListGitCommitsResponse); } export function getRuntimeServiceListGitCommitsQueryKey( @@ -1453,14 +1564,14 @@ export function getRuntimeServiceListGitCommitsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListGitCommitsQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListGitCommits(client, request, { signal }); return { queryKey, @@ -1474,10 +1585,10 @@ export function createRuntimeServiceListGitCommits( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListGitCommitsQueryOptions( client, request, @@ -1493,11 +1604,16 @@ export function runtimeServiceListGitBranches( client: RuntimeClient, request: Omit, "instanceId">, options?: { signal?: AbortSignal }, -): Promise { - return client.runtimeService.listGitBranches( - { instanceId: client.instanceId, ...request }, - { signal: options?.signal }, - ); +): Promise { + return client.runtimeService + .listGitBranches( + ListGitBranchesRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + { signal: options?.signal }, + ) + .then((r) => r.toJson() as unknown as V1ListGitBranchesResponse); } export function getRuntimeServiceListGitBranchesQueryKey( @@ -1516,14 +1632,14 @@ export function getRuntimeServiceListGitBranchesQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceListGitBranchesQueryKey( client.instanceId, request, ); - const queryFn: QueryFunction = ({ signal }) => + const queryFn: QueryFunction = ({ signal }) => runtimeServiceListGitBranches(client, request, { signal }); return { queryKey, @@ -1537,10 +1653,10 @@ export function createRuntimeServiceListGitBranches( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListGitBranchesQueryOptions( client, request, @@ -1554,27 +1670,31 @@ export function createRuntimeServiceListGitBranches( */ export function runtimeServiceCreateInstance( client: RuntimeClient, - request: Omit, "instanceId">, -): Promise { - return client.runtimeService.createInstance({ - instanceId: client.instanceId, - ...request, - }); + request: Omit, +): Promise { + return client.runtimeService + .createInstance( + CreateInstanceRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1CreateInstanceResponse); } export function getRuntimeServiceCreateInstanceMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CreateInstanceResponse, + V1CreateInstanceResponse, unknown, - Omit, "instanceId"> + Omit > >, ): CreateMutationOptions< - CreateInstanceResponse, + V1CreateInstanceResponse, unknown, - Omit, "instanceId"> + Omit > { return { mutationFn: (request) => runtimeServiceCreateInstance(client, request), @@ -1586,16 +1706,16 @@ export function createRuntimeServiceCreateInstanceMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CreateInstanceResponse, + V1CreateInstanceResponse, unknown, - Omit, "instanceId"> + Omit > >, queryClient?: QueryClient, ): CreateMutationResult< - CreateInstanceResponse, + V1CreateInstanceResponse, unknown, - Omit, "instanceId"> + Omit > { const mutationOptions = getRuntimeServiceCreateInstanceMutationOptions( client, @@ -1610,24 +1730,28 @@ export function createRuntimeServiceCreateInstanceMutation( export function runtimeServiceEditInstance( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.editInstance({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .editInstance( + EditInstanceRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1EditInstanceResponse); } export function getRuntimeServiceEditInstanceMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - EditInstanceResponse, + V1EditInstanceResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - EditInstanceResponse, + V1EditInstanceResponse, unknown, Omit, "instanceId"> > { @@ -1641,14 +1765,14 @@ export function createRuntimeServiceEditInstanceMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - EditInstanceResponse, + V1EditInstanceResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - EditInstanceResponse, + V1EditInstanceResponse, unknown, Omit, "instanceId"> > { @@ -1665,24 +1789,28 @@ export function createRuntimeServiceEditInstanceMutation( export function runtimeServiceDeleteInstance( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.deleteInstance({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .deleteInstance( + DeleteInstanceRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1DeleteInstanceResponse); } export function getRuntimeServiceDeleteInstanceMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - DeleteInstanceResponse, + V1DeleteInstanceResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - DeleteInstanceResponse, + V1DeleteInstanceResponse, unknown, Omit, "instanceId"> > { @@ -1696,14 +1824,14 @@ export function createRuntimeServiceDeleteInstanceMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - DeleteInstanceResponse, + V1DeleteInstanceResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - DeleteInstanceResponse, + V1DeleteInstanceResponse, unknown, Omit, "instanceId"> > { @@ -1720,24 +1848,28 @@ export function createRuntimeServiceDeleteInstanceMutation( export function runtimeServiceReloadConfig( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.reloadConfig({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .reloadConfig( + ReloadConfigRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1ReloadConfigResponse); } export function getRuntimeServiceReloadConfigMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ReloadConfigResponse, + V1ReloadConfigResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - ReloadConfigResponse, + V1ReloadConfigResponse, unknown, Omit, "instanceId"> > { @@ -1751,14 +1883,14 @@ export function createRuntimeServiceReloadConfigMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ReloadConfigResponse, + V1ReloadConfigResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - ReloadConfigResponse, + V1ReloadConfigResponse, unknown, Omit, "instanceId"> > { @@ -1775,24 +1907,28 @@ export function createRuntimeServiceReloadConfigMutation( export function runtimeServicePutFile( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.putFile({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .putFile( + PutFileRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1PutFileResponse); } export function getRuntimeServicePutFileMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - PutFileResponse, + V1PutFileResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - PutFileResponse, + V1PutFileResponse, unknown, Omit, "instanceId"> > { @@ -1806,14 +1942,14 @@ export function createRuntimeServicePutFileMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - PutFileResponse, + V1PutFileResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - PutFileResponse, + V1PutFileResponse, unknown, Omit, "instanceId"> > { @@ -1830,24 +1966,28 @@ export function createRuntimeServicePutFileMutation( export function runtimeServiceCreateDirectory( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.createDirectory({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .createDirectory( + CreateDirectoryRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1CreateDirectoryResponse); } export function getRuntimeServiceCreateDirectoryMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CreateDirectoryResponse, + V1CreateDirectoryResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - CreateDirectoryResponse, + V1CreateDirectoryResponse, unknown, Omit, "instanceId"> > { @@ -1861,14 +2001,14 @@ export function createRuntimeServiceCreateDirectoryMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CreateDirectoryResponse, + V1CreateDirectoryResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - CreateDirectoryResponse, + V1CreateDirectoryResponse, unknown, Omit, "instanceId"> > { @@ -1885,24 +2025,28 @@ export function createRuntimeServiceCreateDirectoryMutation( export function runtimeServiceDeleteFile( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.deleteFile({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .deleteFile( + DeleteFileRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1DeleteFileResponse); } export function getRuntimeServiceDeleteFileMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - DeleteFileResponse, + V1DeleteFileResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - DeleteFileResponse, + V1DeleteFileResponse, unknown, Omit, "instanceId"> > { @@ -1916,14 +2060,14 @@ export function createRuntimeServiceDeleteFileMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - DeleteFileResponse, + V1DeleteFileResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - DeleteFileResponse, + V1DeleteFileResponse, unknown, Omit, "instanceId"> > { @@ -1940,24 +2084,28 @@ export function createRuntimeServiceDeleteFileMutation( export function runtimeServiceRenameFile( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.renameFile({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .renameFile( + RenameFileRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1RenameFileResponse); } export function getRuntimeServiceRenameFileMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - RenameFileResponse, + V1RenameFileResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - RenameFileResponse, + V1RenameFileResponse, unknown, Omit, "instanceId"> > { @@ -1971,14 +2119,14 @@ export function createRuntimeServiceRenameFileMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - RenameFileResponse, + V1RenameFileResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - RenameFileResponse, + V1RenameFileResponse, unknown, Omit, "instanceId"> > { @@ -1995,24 +2143,28 @@ export function createRuntimeServiceRenameFileMutation( export function runtimeServiceUnpackExample( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.unpackExample({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .unpackExample( + UnpackExampleRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1UnpackExampleResponse); } export function getRuntimeServiceUnpackExampleMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - UnpackExampleResponse, + V1UnpackExampleResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - UnpackExampleResponse, + V1UnpackExampleResponse, unknown, Omit, "instanceId"> > { @@ -2026,14 +2178,14 @@ export function createRuntimeServiceUnpackExampleMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - UnpackExampleResponse, + V1UnpackExampleResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - UnpackExampleResponse, + V1UnpackExampleResponse, unknown, Omit, "instanceId"> > { @@ -2050,24 +2202,28 @@ export function createRuntimeServiceUnpackExampleMutation( export function runtimeServiceUnpackEmpty( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.unpackEmpty({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .unpackEmpty( + UnpackEmptyRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1UnpackEmptyResponse); } export function getRuntimeServiceUnpackEmptyMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - UnpackEmptyResponse, + V1UnpackEmptyResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - UnpackEmptyResponse, + V1UnpackEmptyResponse, unknown, Omit, "instanceId"> > { @@ -2081,14 +2237,14 @@ export function createRuntimeServiceUnpackEmptyMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - UnpackEmptyResponse, + V1UnpackEmptyResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - UnpackEmptyResponse, + V1UnpackEmptyResponse, unknown, Omit, "instanceId"> > { @@ -2105,24 +2261,28 @@ export function createRuntimeServiceUnpackEmptyMutation( export function runtimeServiceGenerateMetricsViewFile( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.generateMetricsViewFile({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .generateMetricsViewFile( + GenerateMetricsViewFileRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GenerateMetricsViewFileResponse); } export function getRuntimeServiceGenerateMetricsViewFileMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateMetricsViewFileResponse, + V1GenerateMetricsViewFileResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GenerateMetricsViewFileResponse, + V1GenerateMetricsViewFileResponse, unknown, Omit, "instanceId"> > { @@ -2137,14 +2297,14 @@ export function createRuntimeServiceGenerateMetricsViewFileMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateMetricsViewFileResponse, + V1GenerateMetricsViewFileResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GenerateMetricsViewFileResponse, + V1GenerateMetricsViewFileResponse, unknown, Omit, "instanceId"> > { @@ -2159,24 +2319,28 @@ export function createRuntimeServiceGenerateMetricsViewFileMutation( export function runtimeServiceGenerateCanvasFile( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.generateCanvasFile({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .generateCanvasFile( + GenerateCanvasFileRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GenerateCanvasFileResponse); } export function getRuntimeServiceGenerateCanvasFileMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateCanvasFileResponse, + V1GenerateCanvasFileResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GenerateCanvasFileResponse, + V1GenerateCanvasFileResponse, unknown, Omit, "instanceId"> > { @@ -2190,14 +2354,14 @@ export function createRuntimeServiceGenerateCanvasFileMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateCanvasFileResponse, + V1GenerateCanvasFileResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GenerateCanvasFileResponse, + V1GenerateCanvasFileResponse, unknown, Omit, "instanceId"> > { @@ -2214,24 +2378,28 @@ export function createRuntimeServiceGenerateCanvasFileMutation( export function runtimeServiceGenerateResolver( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.generateResolver({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .generateResolver( + GenerateResolverRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GenerateResolverResponse); } export function getRuntimeServiceGenerateResolverMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateResolverResponse, + V1GenerateResolverResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GenerateResolverResponse, + V1GenerateResolverResponse, unknown, Omit, "instanceId"> > { @@ -2245,14 +2413,14 @@ export function createRuntimeServiceGenerateResolverMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateResolverResponse, + V1GenerateResolverResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GenerateResolverResponse, + V1GenerateResolverResponse, unknown, Omit, "instanceId"> > { @@ -2269,24 +2437,28 @@ export function createRuntimeServiceGenerateResolverMutation( export function runtimeServiceGenerateRenderer( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.generateRenderer({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .generateRenderer( + GenerateRendererRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GenerateRendererResponse); } export function getRuntimeServiceGenerateRendererMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateRendererResponse, + V1GenerateRendererResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GenerateRendererResponse, + V1GenerateRendererResponse, unknown, Omit, "instanceId"> > { @@ -2300,14 +2472,14 @@ export function createRuntimeServiceGenerateRendererMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GenerateRendererResponse, + V1GenerateRendererResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GenerateRendererResponse, + V1GenerateRendererResponse, unknown, Omit, "instanceId"> > { @@ -2324,24 +2496,28 @@ export function createRuntimeServiceGenerateRendererMutation( export function runtimeServiceCreateTrigger( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.createTrigger({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .createTrigger( + CreateTriggerRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1CreateTriggerResponse); } export function getRuntimeServiceCreateTriggerMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CreateTriggerResponse, + V1CreateTriggerResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - CreateTriggerResponse, + V1CreateTriggerResponse, unknown, Omit, "instanceId"> > { @@ -2355,14 +2531,14 @@ export function createRuntimeServiceCreateTriggerMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CreateTriggerResponse, + V1CreateTriggerResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - CreateTriggerResponse, + V1CreateTriggerResponse, unknown, Omit, "instanceId"> > { @@ -2379,24 +2555,28 @@ export function createRuntimeServiceCreateTriggerMutation( export function runtimeServiceShareConversation( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.shareConversation({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .shareConversation( + ShareConversationRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1ShareConversationResponse); } export function getRuntimeServiceShareConversationMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ShareConversationResponse, + V1ShareConversationResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - ShareConversationResponse, + V1ShareConversationResponse, unknown, Omit, "instanceId"> > { @@ -2410,14 +2590,14 @@ export function createRuntimeServiceShareConversationMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ShareConversationResponse, + V1ShareConversationResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - ShareConversationResponse, + V1ShareConversationResponse, unknown, Omit, "instanceId"> > { @@ -2434,24 +2614,28 @@ export function createRuntimeServiceShareConversationMutation( export function runtimeServiceForkConversation( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.forkConversation({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .forkConversation( + ForkConversationRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1ForkConversationResponse); } export function getRuntimeServiceForkConversationMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ForkConversationResponse, + V1ForkConversationResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - ForkConversationResponse, + V1ForkConversationResponse, unknown, Omit, "instanceId"> > { @@ -2465,14 +2649,14 @@ export function createRuntimeServiceForkConversationMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - ForkConversationResponse, + V1ForkConversationResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - ForkConversationResponse, + V1ForkConversationResponse, unknown, Omit, "instanceId"> > { @@ -2489,24 +2673,28 @@ export function createRuntimeServiceForkConversationMutation( export function runtimeServiceComplete( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.complete({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .complete( + CompleteRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1CompleteResponse); } export function getRuntimeServiceCompleteMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CompleteResponse, + V1CompleteResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - CompleteResponse, + V1CompleteResponse, unknown, Omit, "instanceId"> > { @@ -2520,14 +2708,14 @@ export function createRuntimeServiceCompleteMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - CompleteResponse, + V1CompleteResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - CompleteResponse, + V1CompleteResponse, unknown, Omit, "instanceId"> > { @@ -2544,24 +2732,28 @@ export function createRuntimeServiceCompleteMutation( export function runtimeServiceGitStatus( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.gitStatus({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .gitStatus( + GitStatusRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GitStatusResponse); } export function getRuntimeServiceGitStatusMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitStatusResponse, + V1GitStatusResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GitStatusResponse, + V1GitStatusResponse, unknown, Omit, "instanceId"> > { @@ -2575,14 +2767,14 @@ export function createRuntimeServiceGitStatusMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitStatusResponse, + V1GitStatusResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GitStatusResponse, + V1GitStatusResponse, unknown, Omit, "instanceId"> > { @@ -2599,24 +2791,28 @@ export function createRuntimeServiceGitStatusMutation( export function runtimeServiceGitCommit( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.gitCommit({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .gitCommit( + GitCommitRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GitCommitResponse); } export function getRuntimeServiceGitCommitMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitCommitResponse, + V1GitCommitResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GitCommitResponse, + V1GitCommitResponse, unknown, Omit, "instanceId"> > { @@ -2630,14 +2826,14 @@ export function createRuntimeServiceGitCommitMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitCommitResponse, + V1GitCommitResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GitCommitResponse, + V1GitCommitResponse, unknown, Omit, "instanceId"> > { @@ -2654,24 +2850,28 @@ export function createRuntimeServiceGitCommitMutation( export function runtimeServiceRestoreGitCommit( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.restoreGitCommit({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .restoreGitCommit( + RestoreGitCommitRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1RestoreGitCommitResponse); } export function getRuntimeServiceRestoreGitCommitMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - RestoreGitCommitResponse, + V1RestoreGitCommitResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - RestoreGitCommitResponse, + V1RestoreGitCommitResponse, unknown, Omit, "instanceId"> > { @@ -2685,14 +2885,14 @@ export function createRuntimeServiceRestoreGitCommitMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - RestoreGitCommitResponse, + V1RestoreGitCommitResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - RestoreGitCommitResponse, + V1RestoreGitCommitResponse, unknown, Omit, "instanceId"> > { @@ -2709,24 +2909,28 @@ export function createRuntimeServiceRestoreGitCommitMutation( export function runtimeServiceGitMergeToBranch( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.gitMergeToBranch({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .gitMergeToBranch( + GitMergeToBranchRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GitMergeToBranchResponse); } export function getRuntimeServiceGitMergeToBranchMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitMergeToBranchResponse, + V1GitMergeToBranchResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GitMergeToBranchResponse, + V1GitMergeToBranchResponse, unknown, Omit, "instanceId"> > { @@ -2740,14 +2944,14 @@ export function createRuntimeServiceGitMergeToBranchMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitMergeToBranchResponse, + V1GitMergeToBranchResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GitMergeToBranchResponse, + V1GitMergeToBranchResponse, unknown, Omit, "instanceId"> > { @@ -2764,24 +2968,28 @@ export function createRuntimeServiceGitMergeToBranchMutation( export function runtimeServiceGitSwitchBranch( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.gitSwitchBranch({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .gitSwitchBranch( + GitSwitchBranchRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GitSwitchBranchResponse); } export function getRuntimeServiceGitSwitchBranchMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitSwitchBranchResponse, + V1GitSwitchBranchResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GitSwitchBranchResponse, + V1GitSwitchBranchResponse, unknown, Omit, "instanceId"> > { @@ -2795,14 +3003,14 @@ export function createRuntimeServiceGitSwitchBranchMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitSwitchBranchResponse, + V1GitSwitchBranchResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GitSwitchBranchResponse, + V1GitSwitchBranchResponse, unknown, Omit, "instanceId"> > { @@ -2819,24 +3027,28 @@ export function createRuntimeServiceGitSwitchBranchMutation( export function runtimeServiceGitPull( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.gitPull({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .gitPull( + GitPullRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GitPullResponse); } export function getRuntimeServiceGitPullMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitPullResponse, + V1GitPullResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GitPullResponse, + V1GitPullResponse, unknown, Omit, "instanceId"> > { @@ -2850,14 +3062,14 @@ export function createRuntimeServiceGitPullMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitPullResponse, + V1GitPullResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GitPullResponse, + V1GitPullResponse, unknown, Omit, "instanceId"> > { @@ -2874,24 +3086,28 @@ export function createRuntimeServiceGitPullMutation( export function runtimeServiceGitPush( client: RuntimeClient, request: Omit, "instanceId">, -): Promise { - return client.runtimeService.gitPush({ - instanceId: client.instanceId, - ...request, - }); +): Promise { + return client.runtimeService + .gitPush( + GitPushRequest.fromJson({ + instanceId: client.instanceId, + ...request, + } as unknown as JsonValue), + ) + .then((r) => r.toJson() as unknown as V1GitPushResponse); } export function getRuntimeServiceGitPushMutationOptions( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitPushResponse, + V1GitPushResponse, unknown, Omit, "instanceId"> > >, ): CreateMutationOptions< - GitPushResponse, + V1GitPushResponse, unknown, Omit, "instanceId"> > { @@ -2905,14 +3121,14 @@ export function createRuntimeServiceGitPushMutation( client: RuntimeClient, options?: Partial< CreateMutationOptions< - GitPushResponse, + V1GitPushResponse, unknown, Omit, "instanceId"> > >, queryClient?: QueryClient, ): CreateMutationResult< - GitPushResponse, + V1GitPushResponse, unknown, Omit, "instanceId"> > { From 243dd495c2b8f74b5c2c8433cc4a0ce5526fe228 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 14:53:32 +0300 Subject: [PATCH 07/27] feat: add generic TData support to v2 query hooks for select transforms The generated hooks now accept a TData type parameter (defaulting to the response type), enabling select transforms that narrow the return type. This mirrors the Orval pattern and avoids forcing consumers to use derived stores as workarounds. --- web-common/scripts/generate-query-hooks.ts | 18 +- .../v2/gen/connector-service.ts | 140 ++-- .../runtime-client/v2/gen/query-service.ts | 636 +++++++++++++----- .../runtime-client/v2/gen/runtime-service.ts | 478 +++++++++---- 4 files changed, 907 insertions(+), 365 deletions(-) diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts index 7a1c8a08e44..ebf1635be73 100644 --- a/web-common/scripts/generate-query-hooks.ts +++ b/web-common/scripts/generate-query-hooks.ts @@ -287,15 +287,15 @@ function generateServiceFile(service: ServiceDef): string { ``, ); - // Tier 3: Query options + // Tier 3: Query options (generic TData for select support) lines.push( - `export function ${optsFnName}(`, + `export function ${optsFnName}(`, ` client: RuntimeClient,`, ` request: ${requestType},`, ` options?: {`, - ` query?: Partial>;`, + ` query?: Partial>;`, ` },`, - `): CreateQueryOptions<${responseType}> & { queryKey: QueryKey } {`, + `): CreateQueryOptions<${responseType}, Error, TData> & { queryKey: QueryKey } {`, ` const queryKey = ${keyFnName}(client.instanceId, request);`, ` const queryFn: QueryFunction<${responseType}> = ({ signal }) =>`, ` ${fullName}(client, request, { signal });`, @@ -304,21 +304,21 @@ function generateServiceFile(service: ServiceDef): string { ` queryFn,`, ` enabled: !!client.instanceId,`, ` ...options?.query,`, - ` };`, + ` } as CreateQueryOptions<${responseType}, Error, TData> & { queryKey: QueryKey };`, `}`, ``, ); - // Tier 4: Convenience hook + // Tier 4: Convenience hook (generic TData for select support) lines.push( - `export function ${hookName}(`, + `export function ${hookName}(`, ` client: RuntimeClient,`, ` request: ${requestType},`, ` options?: {`, - ` query?: Partial>;`, + ` query?: Partial>;`, ` },`, ` queryClient?: QueryClient,`, - `): CreateQueryResult<${responseType}> {`, + `): CreateQueryResult {`, ` const queryOptions = ${optsFnName}(client, request, options);`, ` return createQuery(queryOptions, queryClient);`, `}`, diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts index 5d7fb9087b8..648aa855528 100644 --- a/web-common/src/runtime-client/v2/gen/connector-service.ts +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -63,13 +63,17 @@ export function getConnectorServiceListBucketsQueryKey( ] as const; } -export function getConnectorServiceListBucketsQueryOptions( +export function getConnectorServiceListBucketsQueryOptions< + TData = V1ListBucketsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceListBucketsQueryKey( client.instanceId, request, @@ -81,17 +85,21 @@ export function getConnectorServiceListBucketsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceListBuckets( +export function createConnectorServiceListBuckets< + TData = V1ListBucketsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListBucketsQueryOptions( client, request, @@ -131,13 +139,17 @@ export function getConnectorServiceListObjectsQueryKey( ] as const; } -export function getConnectorServiceListObjectsQueryOptions( +export function getConnectorServiceListObjectsQueryOptions< + TData = V1ListObjectsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceListObjectsQueryKey( client.instanceId, request, @@ -149,17 +161,21 @@ export function getConnectorServiceListObjectsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceListObjects( +export function createConnectorServiceListObjects< + TData = V1ListObjectsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListObjectsQueryOptions( client, request, @@ -199,13 +215,17 @@ export function getConnectorServiceOLAPListTablesQueryKey( ] as const; } -export function getConnectorServiceOLAPListTablesQueryOptions( +export function getConnectorServiceOLAPListTablesQueryOptions< + TData = V1OLAPListTablesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceOLAPListTablesQueryKey( client.instanceId, request, @@ -217,17 +237,21 @@ export function getConnectorServiceOLAPListTablesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceOLAPListTables( +export function createConnectorServiceOLAPListTables< + TData = V1OLAPListTablesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceOLAPListTablesQueryOptions( client, request, @@ -267,13 +291,17 @@ export function getConnectorServiceOLAPGetTableQueryKey( ] as const; } -export function getConnectorServiceOLAPGetTableQueryOptions( +export function getConnectorServiceOLAPGetTableQueryOptions< + TData = V1OLAPGetTableResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceOLAPGetTableQueryKey( client.instanceId, request, @@ -285,17 +313,21 @@ export function getConnectorServiceOLAPGetTableQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceOLAPGetTable( +export function createConnectorServiceOLAPGetTable< + TData = V1OLAPGetTableResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceOLAPGetTableQueryOptions( client, request, @@ -335,13 +367,19 @@ export function getConnectorServiceListDatabaseSchemasQueryKey( ] as const; } -export function getConnectorServiceListDatabaseSchemasQueryOptions( +export function getConnectorServiceListDatabaseSchemasQueryOptions< + TData = V1ListDatabaseSchemasResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceListDatabaseSchemasQueryKey( client.instanceId, request, @@ -353,17 +391,23 @@ export function getConnectorServiceListDatabaseSchemasQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceListDatabaseSchemas( +export function createConnectorServiceListDatabaseSchemas< + TData = V1ListDatabaseSchemasResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListDatabaseSchemasQueryOptions( client, request, @@ -398,13 +442,17 @@ export function getConnectorServiceListTablesQueryKey( return ["ConnectorService", "listTables", instanceId, request ?? {}] as const; } -export function getConnectorServiceListTablesQueryOptions( +export function getConnectorServiceListTablesQueryOptions< + TData = V1ListTablesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceListTablesQueryKey( client.instanceId, request, @@ -416,17 +464,19 @@ export function getConnectorServiceListTablesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceListTables( +export function createConnectorServiceListTables( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceListTablesQueryOptions( client, request, @@ -461,13 +511,17 @@ export function getConnectorServiceGetTableQueryKey( return ["ConnectorService", "getTable", instanceId, request ?? {}] as const; } -export function getConnectorServiceGetTableQueryOptions( +export function getConnectorServiceGetTableQueryOptions< + TData = V1GetTableResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getConnectorServiceGetTableQueryKey( client.instanceId, request, @@ -479,17 +533,19 @@ export function getConnectorServiceGetTableQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createConnectorServiceGetTable( +export function createConnectorServiceGetTable( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getConnectorServiceGetTableQueryOptions( client, request, diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts index 084ddfe39b3..379f3b1cdfa 100644 --- a/web-common/src/runtime-client/v2/gen/query-service.ts +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -130,13 +130,17 @@ export function getQueryServiceMetricsViewAggregationQueryKey( ] as const; } -export function getQueryServiceMetricsViewAggregationQueryOptions( +export function getQueryServiceMetricsViewAggregationQueryOptions< + TData = V1MetricsViewAggregationResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceMetricsViewAggregationQueryKey( @@ -151,17 +155,23 @@ export function getQueryServiceMetricsViewAggregationQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewAggregation( +export function createQueryServiceMetricsViewAggregation< + TData = V1MetricsViewAggregationResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewAggregationQueryOptions( client, request, @@ -201,13 +211,19 @@ export function getQueryServiceMetricsViewToplistQueryKey( ] as const; } -export function getQueryServiceMetricsViewToplistQueryOptions( +export function getQueryServiceMetricsViewToplistQueryOptions< + TData = V1MetricsViewToplistResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewToplistQueryKey( client.instanceId, request, @@ -219,17 +235,23 @@ export function getQueryServiceMetricsViewToplistQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewToplist( +export function createQueryServiceMetricsViewToplist< + TData = V1MetricsViewToplistResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewToplistQueryOptions( client, request, @@ -269,13 +291,17 @@ export function getQueryServiceMetricsViewComparisonQueryKey( ] as const; } -export function getQueryServiceMetricsViewComparisonQueryOptions( +export function getQueryServiceMetricsViewComparisonQueryOptions< + TData = V1MetricsViewComparisonResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceMetricsViewComparisonQueryKey( @@ -290,17 +316,23 @@ export function getQueryServiceMetricsViewComparisonQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewComparison( +export function createQueryServiceMetricsViewComparison< + TData = V1MetricsViewComparisonResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewComparisonQueryOptions( client, request, @@ -340,13 +372,17 @@ export function getQueryServiceMetricsViewTimeSeriesQueryKey( ] as const; } -export function getQueryServiceMetricsViewTimeSeriesQueryOptions( +export function getQueryServiceMetricsViewTimeSeriesQueryOptions< + TData = V1MetricsViewTimeSeriesResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceMetricsViewTimeSeriesQueryKey( @@ -361,17 +397,23 @@ export function getQueryServiceMetricsViewTimeSeriesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewTimeSeries( +export function createQueryServiceMetricsViewTimeSeries< + TData = V1MetricsViewTimeSeriesResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTimeSeriesQueryOptions( client, request, @@ -411,13 +453,19 @@ export function getQueryServiceMetricsViewTotalsQueryKey( ] as const; } -export function getQueryServiceMetricsViewTotalsQueryOptions( +export function getQueryServiceMetricsViewTotalsQueryOptions< + TData = V1MetricsViewTotalsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewTotalsQueryKey( client.instanceId, request, @@ -429,17 +477,23 @@ export function getQueryServiceMetricsViewTotalsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewTotals( +export function createQueryServiceMetricsViewTotals< + TData = V1MetricsViewTotalsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTotalsQueryOptions( client, request, @@ -479,13 +533,19 @@ export function getQueryServiceMetricsViewRowsQueryKey( ] as const; } -export function getQueryServiceMetricsViewRowsQueryOptions( +export function getQueryServiceMetricsViewRowsQueryOptions< + TData = V1MetricsViewRowsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewRowsQueryKey( client.instanceId, request, @@ -497,17 +557,23 @@ export function getQueryServiceMetricsViewRowsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewRows( +export function createQueryServiceMetricsViewRows< + TData = V1MetricsViewRowsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewRowsQueryOptions( client, request, @@ -547,13 +613,19 @@ export function getQueryServiceMetricsViewTimeRangeQueryKey( ] as const; } -export function getQueryServiceMetricsViewTimeRangeQueryOptions( +export function getQueryServiceMetricsViewTimeRangeQueryOptions< + TData = V1MetricsViewTimeRangeResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewTimeRangeQueryKey( client.instanceId, request, @@ -565,17 +637,23 @@ export function getQueryServiceMetricsViewTimeRangeQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewTimeRange( +export function createQueryServiceMetricsViewTimeRange< + TData = V1MetricsViewTimeRangeResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTimeRangeQueryOptions( client, request, @@ -615,13 +693,19 @@ export function getQueryServiceMetricsViewSchemaQueryKey( ] as const; } -export function getQueryServiceMetricsViewSchemaQueryOptions( +export function getQueryServiceMetricsViewSchemaQueryOptions< + TData = V1MetricsViewSchemaResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewSchemaQueryKey( client.instanceId, request, @@ -633,17 +717,23 @@ export function getQueryServiceMetricsViewSchemaQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewSchema( +export function createQueryServiceMetricsViewSchema< + TData = V1MetricsViewSchemaResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewSchemaQueryOptions( client, request, @@ -683,13 +773,19 @@ export function getQueryServiceMetricsViewSearchQueryKey( ] as const; } -export function getQueryServiceMetricsViewSearchQueryOptions( +export function getQueryServiceMetricsViewSearchQueryOptions< + TData = V1MetricsViewSearchResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceMetricsViewSearchQueryKey( client.instanceId, request, @@ -701,17 +797,23 @@ export function getQueryServiceMetricsViewSearchQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewSearch( +export function createQueryServiceMetricsViewSearch< + TData = V1MetricsViewSearchResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewSearchQueryOptions( client, request, @@ -751,13 +853,17 @@ export function getQueryServiceMetricsViewTimeRangesQueryKey( ] as const; } -export function getQueryServiceMetricsViewTimeRangesQueryOptions( +export function getQueryServiceMetricsViewTimeRangesQueryOptions< + TData = V1MetricsViewTimeRangesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceMetricsViewTimeRangesQueryKey( @@ -772,17 +878,23 @@ export function getQueryServiceMetricsViewTimeRangesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewTimeRanges( +export function createQueryServiceMetricsViewTimeRanges< + TData = V1MetricsViewTimeRangesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewTimeRangesQueryOptions( client, request, @@ -822,13 +934,17 @@ export function getQueryServiceMetricsViewAnnotationsQueryKey( ] as const; } -export function getQueryServiceMetricsViewAnnotationsQueryOptions( +export function getQueryServiceMetricsViewAnnotationsQueryOptions< + TData = V1MetricsViewAnnotationsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceMetricsViewAnnotationsQueryKey( @@ -843,17 +959,23 @@ export function getQueryServiceMetricsViewAnnotationsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceMetricsViewAnnotations( +export function createQueryServiceMetricsViewAnnotations< + TData = V1MetricsViewAnnotationsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceMetricsViewAnnotationsQueryOptions( client, request, @@ -901,7 +1023,9 @@ export function getQueryServiceConvertExpressionToMetricsSQLQueryKey( ] as const; } -export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( +export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions< + TData = V1ConvertExpressionToMetricsSQLResponse, +>( client: RuntimeClient, request: Omit< PartialMessage, @@ -909,10 +1033,10 @@ export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( >, options?: { query?: Partial< - CreateQueryOptions + CreateQueryOptions >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceConvertExpressionToMetricsSQLQueryKey( @@ -927,10 +1051,16 @@ export function getQueryServiceConvertExpressionToMetricsSQLQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, - }; + } as CreateQueryOptions< + V1ConvertExpressionToMetricsSQLResponse, + Error, + TData + > & { queryKey: QueryKey }; } -export function createQueryServiceConvertExpressionToMetricsSQL( +export function createQueryServiceConvertExpressionToMetricsSQL< + TData = V1ConvertExpressionToMetricsSQLResponse, +>( client: RuntimeClient, request: Omit< PartialMessage, @@ -938,11 +1068,11 @@ export function createQueryServiceConvertExpressionToMetricsSQL( >, options?: { query?: Partial< - CreateQueryOptions + CreateQueryOptions >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceConvertExpressionToMetricsSQLQueryOptions( client, request, @@ -977,13 +1107,17 @@ export function getQueryServiceResolveCanvasQueryKey( return ["QueryService", "resolveCanvas", instanceId, request ?? {}] as const; } -export function getQueryServiceResolveCanvasQueryOptions( +export function getQueryServiceResolveCanvasQueryOptions< + TData = V1ResolveCanvasResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceResolveCanvasQueryKey( client.instanceId, request, @@ -995,17 +1129,21 @@ export function getQueryServiceResolveCanvasQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceResolveCanvas( +export function createQueryServiceResolveCanvas< + TData = V1ResolveCanvasResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceResolveCanvasQueryOptions( client, request, @@ -1045,13 +1183,19 @@ export function getQueryServiceResolveComponentQueryKey( ] as const; } -export function getQueryServiceResolveComponentQueryOptions( +export function getQueryServiceResolveComponentQueryOptions< + TData = V1ResolveComponentResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceResolveComponentQueryKey( client.instanceId, request, @@ -1063,17 +1207,23 @@ export function getQueryServiceResolveComponentQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceResolveComponent( +export function createQueryServiceResolveComponent< + TData = V1ResolveComponentResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceResolveComponentQueryOptions( client, request, @@ -1113,13 +1263,17 @@ export function getQueryServiceResolveTemplatedStringQueryKey( ] as const; } -export function getQueryServiceResolveTemplatedStringQueryOptions( +export function getQueryServiceResolveTemplatedStringQueryOptions< + TData = V1ResolveTemplatedStringResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceResolveTemplatedStringQueryKey( @@ -1134,17 +1288,23 @@ export function getQueryServiceResolveTemplatedStringQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceResolveTemplatedString( +export function createQueryServiceResolveTemplatedString< + TData = V1ResolveTemplatedStringResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceResolveTemplatedStringQueryOptions( client, request, @@ -1184,13 +1344,19 @@ export function getQueryServiceColumnRollupIntervalQueryKey( ] as const; } -export function getQueryServiceColumnRollupIntervalQueryOptions( +export function getQueryServiceColumnRollupIntervalQueryOptions< + TData = V1ColumnRollupIntervalResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnRollupIntervalQueryKey( client.instanceId, request, @@ -1202,17 +1368,23 @@ export function getQueryServiceColumnRollupIntervalQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnRollupInterval( +export function createQueryServiceColumnRollupInterval< + TData = V1ColumnRollupIntervalResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnRollupIntervalQueryOptions( client, request, @@ -1247,13 +1419,17 @@ export function getQueryServiceColumnTopKQueryKey( return ["QueryService", "columnTopK", instanceId, request ?? {}] as const; } -export function getQueryServiceColumnTopKQueryOptions( +export function getQueryServiceColumnTopKQueryOptions< + TData = V1ColumnTopKResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnTopKQueryKey( client.instanceId, request, @@ -1265,17 +1441,19 @@ export function getQueryServiceColumnTopKQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnTopK( +export function createQueryServiceColumnTopK( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTopKQueryOptions( client, request, @@ -1315,13 +1493,19 @@ export function getQueryServiceColumnNullCountQueryKey( ] as const; } -export function getQueryServiceColumnNullCountQueryOptions( +export function getQueryServiceColumnNullCountQueryOptions< + TData = V1ColumnNullCountResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnNullCountQueryKey( client.instanceId, request, @@ -1333,17 +1517,23 @@ export function getQueryServiceColumnNullCountQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnNullCount( +export function createQueryServiceColumnNullCount< + TData = V1ColumnNullCountResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnNullCountQueryOptions( client, request, @@ -1385,13 +1575,17 @@ export function getQueryServiceColumnDescriptiveStatisticsQueryKey( ] as const; } -export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( +export function getQueryServiceColumnDescriptiveStatisticsQueryOptions< + TData = V1ColumnDescriptiveStatisticsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceColumnDescriptiveStatisticsQueryKey( @@ -1406,17 +1600,25 @@ export function getQueryServiceColumnDescriptiveStatisticsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, - }; + } as CreateQueryOptions< + V1ColumnDescriptiveStatisticsResponse, + Error, + TData + > & { queryKey: QueryKey }; } -export function createQueryServiceColumnDescriptiveStatistics( +export function createQueryServiceColumnDescriptiveStatistics< + TData = V1ColumnDescriptiveStatisticsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnDescriptiveStatisticsQueryOptions( client, request, @@ -1456,13 +1658,19 @@ export function getQueryServiceColumnTimeGrainQueryKey( ] as const; } -export function getQueryServiceColumnTimeGrainQueryOptions( +export function getQueryServiceColumnTimeGrainQueryOptions< + TData = V1ColumnTimeGrainResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnTimeGrainQueryKey( client.instanceId, request, @@ -1474,17 +1682,23 @@ export function getQueryServiceColumnTimeGrainQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnTimeGrain( +export function createQueryServiceColumnTimeGrain< + TData = V1ColumnTimeGrainResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTimeGrainQueryOptions( client, request, @@ -1524,13 +1738,17 @@ export function getQueryServiceColumnNumericHistogramQueryKey( ] as const; } -export function getQueryServiceColumnNumericHistogramQueryOptions( +export function getQueryServiceColumnNumericHistogramQueryOptions< + TData = V1ColumnNumericHistogramResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getQueryServiceColumnNumericHistogramQueryKey( @@ -1545,17 +1763,23 @@ export function getQueryServiceColumnNumericHistogramQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnNumericHistogram( +export function createQueryServiceColumnNumericHistogram< + TData = V1ColumnNumericHistogramResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnNumericHistogramQueryOptions( client, request, @@ -1595,13 +1819,19 @@ export function getQueryServiceColumnRugHistogramQueryKey( ] as const; } -export function getQueryServiceColumnRugHistogramQueryOptions( +export function getQueryServiceColumnRugHistogramQueryOptions< + TData = V1ColumnRugHistogramResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnRugHistogramQueryKey( client.instanceId, request, @@ -1613,17 +1843,23 @@ export function getQueryServiceColumnRugHistogramQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnRugHistogram( +export function createQueryServiceColumnRugHistogram< + TData = V1ColumnRugHistogramResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnRugHistogramQueryOptions( client, request, @@ -1663,13 +1899,19 @@ export function getQueryServiceColumnTimeRangeQueryKey( ] as const; } -export function getQueryServiceColumnTimeRangeQueryOptions( +export function getQueryServiceColumnTimeRangeQueryOptions< + TData = V1ColumnTimeRangeResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnTimeRangeQueryKey( client.instanceId, request, @@ -1681,17 +1923,23 @@ export function getQueryServiceColumnTimeRangeQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnTimeRange( +export function createQueryServiceColumnTimeRange< + TData = V1ColumnTimeRangeResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTimeRangeQueryOptions( client, request, @@ -1731,13 +1979,19 @@ export function getQueryServiceColumnCardinalityQueryKey( ] as const; } -export function getQueryServiceColumnCardinalityQueryOptions( +export function getQueryServiceColumnCardinalityQueryOptions< + TData = V1ColumnCardinalityResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnCardinalityQueryKey( client.instanceId, request, @@ -1749,17 +2003,23 @@ export function getQueryServiceColumnCardinalityQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnCardinality( +export function createQueryServiceColumnCardinality< + TData = V1ColumnCardinalityResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnCardinalityQueryOptions( client, request, @@ -1799,13 +2059,19 @@ export function getQueryServiceColumnTimeSeriesQueryKey( ] as const; } -export function getQueryServiceColumnTimeSeriesQueryOptions( +export function getQueryServiceColumnTimeSeriesQueryOptions< + TData = V1ColumnTimeSeriesResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceColumnTimeSeriesQueryKey( client.instanceId, request, @@ -1817,17 +2083,23 @@ export function getQueryServiceColumnTimeSeriesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceColumnTimeSeries( +export function createQueryServiceColumnTimeSeries< + TData = V1ColumnTimeSeriesResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceColumnTimeSeriesQueryOptions( client, request, @@ -1867,13 +2139,19 @@ export function getQueryServiceTableCardinalityQueryKey( ] as const; } -export function getQueryServiceTableCardinalityQueryOptions( +export function getQueryServiceTableCardinalityQueryOptions< + TData = V1TableCardinalityResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceTableCardinalityQueryKey( client.instanceId, request, @@ -1885,17 +2163,23 @@ export function getQueryServiceTableCardinalityQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceTableCardinality( +export function createQueryServiceTableCardinality< + TData = V1TableCardinalityResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceTableCardinalityQueryOptions( client, request, @@ -1930,13 +2214,17 @@ export function getQueryServiceTableColumnsQueryKey( return ["QueryService", "tableColumns", instanceId, request ?? {}] as const; } -export function getQueryServiceTableColumnsQueryOptions( +export function getQueryServiceTableColumnsQueryOptions< + TData = V1TableColumnsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceTableColumnsQueryKey( client.instanceId, request, @@ -1948,17 +2236,19 @@ export function getQueryServiceTableColumnsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceTableColumns( +export function createQueryServiceTableColumns( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceTableColumnsQueryOptions( client, request, @@ -1993,13 +2283,17 @@ export function getQueryServiceTableRowsQueryKey( return ["QueryService", "tableRows", instanceId, request ?? {}] as const; } -export function getQueryServiceTableRowsQueryOptions( +export function getQueryServiceTableRowsQueryOptions< + TData = V1TableRowsResponse, +>( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getQueryServiceTableRowsQueryKey(client.instanceId, request); const queryFn: QueryFunction = ({ signal }) => queryServiceTableRows(client, request, { signal }); @@ -2008,17 +2302,19 @@ export function getQueryServiceTableRowsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createQueryServiceTableRows( +export function createQueryServiceTableRows( client: RuntimeClient, request: Omit, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getQueryServiceTableRowsQueryOptions( client, request, diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts index fee8fd98ab3..80c398ce894 100644 --- a/web-common/src/runtime-client/v2/gen/runtime-service.ts +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -140,13 +140,13 @@ export function getRuntimeServicePingQueryKey( return ["RuntimeService", "ping", instanceId, request ?? {}] as const; } -export function getRuntimeServicePingQueryOptions( +export function getRuntimeServicePingQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServicePingQueryKey(client.instanceId, request); const queryFn: QueryFunction = ({ signal }) => runtimeServicePing(client, request, { signal }); @@ -155,17 +155,19 @@ export function getRuntimeServicePingQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServicePing( +export function createRuntimeServicePing( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServicePingQueryOptions( client, request, @@ -196,13 +198,13 @@ export function getRuntimeServiceHealthQueryKey( return ["RuntimeService", "health", instanceId, request ?? {}] as const; } -export function getRuntimeServiceHealthQueryOptions( +export function getRuntimeServiceHealthQueryOptions( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { queryKey: QueryKey } { const queryKey = getRuntimeServiceHealthQueryKey(client.instanceId, request); const queryFn: QueryFunction = ({ signal }) => runtimeServiceHealth(client, request, { signal }); @@ -211,17 +213,19 @@ export function getRuntimeServiceHealthQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceHealth( +export function createRuntimeServiceHealth( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceHealthQueryOptions( client, request, @@ -261,13 +265,17 @@ export function getRuntimeServiceInstanceHealthQueryKey( ] as const; } -export function getRuntimeServiceInstanceHealthQueryOptions( +export function getRuntimeServiceInstanceHealthQueryOptions< + TData = V1InstanceHealthResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceInstanceHealthQueryKey( client.instanceId, request, @@ -279,17 +287,21 @@ export function getRuntimeServiceInstanceHealthQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceInstanceHealth( +export function createRuntimeServiceInstanceHealth< + TData = V1InstanceHealthResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceInstanceHealthQueryOptions( client, request, @@ -326,13 +338,17 @@ export function getRuntimeServiceListInstancesQueryKey( ] as const; } -export function getRuntimeServiceListInstancesQueryOptions( +export function getRuntimeServiceListInstancesQueryOptions< + TData = V1ListInstancesResponse, +>( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListInstancesQueryKey( client.instanceId, request, @@ -344,17 +360,21 @@ export function getRuntimeServiceListInstancesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListInstances( +export function createRuntimeServiceListInstances< + TData = V1ListInstancesResponse, +>( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListInstancesQueryOptions( client, request, @@ -389,13 +409,17 @@ export function getRuntimeServiceGetInstanceQueryKey( return ["RuntimeService", "getInstance", instanceId, request ?? {}] as const; } -export function getRuntimeServiceGetInstanceQueryOptions( +export function getRuntimeServiceGetInstanceQueryOptions< + TData = V1GetInstanceResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetInstanceQueryKey( client.instanceId, request, @@ -407,17 +431,19 @@ export function getRuntimeServiceGetInstanceQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetInstance( +export function createRuntimeServiceGetInstance( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetInstanceQueryOptions( client, request, @@ -452,13 +478,17 @@ export function getRuntimeServiceListFilesQueryKey( return ["RuntimeService", "listFiles", instanceId, request ?? {}] as const; } -export function getRuntimeServiceListFilesQueryOptions( +export function getRuntimeServiceListFilesQueryOptions< + TData = V1ListFilesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListFilesQueryKey( client.instanceId, request, @@ -470,17 +500,19 @@ export function getRuntimeServiceListFilesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListFiles( +export function createRuntimeServiceListFiles( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListFilesQueryOptions( client, request, @@ -515,13 +547,15 @@ export function getRuntimeServiceGetFileQueryKey( return ["RuntimeService", "getFile", instanceId, request ?? {}] as const; } -export function getRuntimeServiceGetFileQueryOptions( +export function getRuntimeServiceGetFileQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetFileQueryKey(client.instanceId, request); const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetFile(client, request, { signal }); @@ -530,17 +564,19 @@ export function getRuntimeServiceGetFileQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetFile( +export function createRuntimeServiceGetFile( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetFileQueryOptions( client, request, @@ -572,13 +608,17 @@ export function getRuntimeServiceListExamplesQueryKey( return ["RuntimeService", "listExamples", instanceId, request ?? {}] as const; } -export function getRuntimeServiceListExamplesQueryOptions( +export function getRuntimeServiceListExamplesQueryOptions< + TData = V1ListExamplesResponse, +>( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListExamplesQueryKey( client.instanceId, request, @@ -590,17 +630,21 @@ export function getRuntimeServiceListExamplesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListExamples( +export function createRuntimeServiceListExamples< + TData = V1ListExamplesResponse, +>( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListExamplesQueryOptions( client, request, @@ -640,13 +684,17 @@ export function getRuntimeServiceQueryResolverQueryKey( ] as const; } -export function getRuntimeServiceQueryResolverQueryOptions( +export function getRuntimeServiceQueryResolverQueryOptions< + TData = V1QueryResolverResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceQueryResolverQueryKey( client.instanceId, request, @@ -658,17 +706,21 @@ export function getRuntimeServiceQueryResolverQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceQueryResolver( +export function createRuntimeServiceQueryResolver< + TData = V1QueryResolverResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceQueryResolverQueryOptions( client, request, @@ -703,13 +755,15 @@ export function getRuntimeServiceGetLogsQueryKey( return ["RuntimeService", "getLogs", instanceId, request ?? {}] as const; } -export function getRuntimeServiceGetLogsQueryOptions( +export function getRuntimeServiceGetLogsQueryOptions( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetLogsQueryKey(client.instanceId, request); const queryFn: QueryFunction = ({ signal }) => runtimeServiceGetLogs(client, request, { signal }); @@ -718,17 +772,19 @@ export function getRuntimeServiceGetLogsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetLogs( +export function createRuntimeServiceGetLogs( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetLogsQueryOptions( client, request, @@ -768,13 +824,17 @@ export function getRuntimeServiceListResourcesQueryKey( ] as const; } -export function getRuntimeServiceListResourcesQueryOptions( +export function getRuntimeServiceListResourcesQueryOptions< + TData = V1ListResourcesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListResourcesQueryKey( client.instanceId, request, @@ -786,17 +846,21 @@ export function getRuntimeServiceListResourcesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListResources( +export function createRuntimeServiceListResources< + TData = V1ListResourcesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListResourcesQueryOptions( client, request, @@ -831,13 +895,17 @@ export function getRuntimeServiceGetResourceQueryKey( return ["RuntimeService", "getResource", instanceId, request ?? {}] as const; } -export function getRuntimeServiceGetResourceQueryOptions( +export function getRuntimeServiceGetResourceQueryOptions< + TData = V1GetResourceResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetResourceQueryKey( client.instanceId, request, @@ -849,17 +917,19 @@ export function getRuntimeServiceGetResourceQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetResource( +export function createRuntimeServiceGetResource( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetResourceQueryOptions( client, request, @@ -894,13 +964,17 @@ export function getRuntimeServiceGetExploreQueryKey( return ["RuntimeService", "getExplore", instanceId, request ?? {}] as const; } -export function getRuntimeServiceGetExploreQueryOptions( +export function getRuntimeServiceGetExploreQueryOptions< + TData = V1GetExploreResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetExploreQueryKey( client.instanceId, request, @@ -912,17 +986,19 @@ export function getRuntimeServiceGetExploreQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetExplore( +export function createRuntimeServiceGetExplore( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetExploreQueryOptions( client, request, @@ -962,13 +1038,19 @@ export function getRuntimeServiceGetModelPartitionsQueryKey( ] as const; } -export function getRuntimeServiceGetModelPartitionsQueryOptions( +export function getRuntimeServiceGetModelPartitionsQueryOptions< + TData = V1GetModelPartitionsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetModelPartitionsQueryKey( client.instanceId, request, @@ -980,17 +1062,23 @@ export function getRuntimeServiceGetModelPartitionsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetModelPartitions( +export function createRuntimeServiceGetModelPartitions< + TData = V1GetModelPartitionsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetModelPartitionsQueryOptions( client, request, @@ -1027,13 +1115,19 @@ export function getRuntimeServiceListConnectorDriversQueryKey( ] as const; } -export function getRuntimeServiceListConnectorDriversQueryOptions( +export function getRuntimeServiceListConnectorDriversQueryOptions< + TData = V1ListConnectorDriversResponse, +>( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListConnectorDriversQueryKey( client.instanceId, request, @@ -1045,17 +1139,23 @@ export function getRuntimeServiceListConnectorDriversQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListConnectorDrivers( +export function createRuntimeServiceListConnectorDrivers< + TData = V1ListConnectorDriversResponse, +>( client: RuntimeClient, request: PartialMessage, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListConnectorDriversQueryOptions( client, request, @@ -1095,13 +1195,19 @@ export function getRuntimeServiceAnalyzeConnectorsQueryKey( ] as const; } -export function getRuntimeServiceAnalyzeConnectorsQueryOptions( +export function getRuntimeServiceAnalyzeConnectorsQueryOptions< + TData = V1AnalyzeConnectorsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceAnalyzeConnectorsQueryKey( client.instanceId, request, @@ -1113,17 +1219,23 @@ export function getRuntimeServiceAnalyzeConnectorsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceAnalyzeConnectors( +export function createRuntimeServiceAnalyzeConnectors< + TData = V1AnalyzeConnectorsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceAnalyzeConnectorsQueryOptions( client, request, @@ -1163,13 +1275,17 @@ export function getRuntimeServiceListNotifierConnectorsQueryKey( ] as const; } -export function getRuntimeServiceListNotifierConnectorsQueryOptions( +export function getRuntimeServiceListNotifierConnectorsQueryOptions< + TData = V1ListNotifierConnectorsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { +): CreateQueryOptions & { queryKey: QueryKey; } { const queryKey = getRuntimeServiceListNotifierConnectorsQueryKey( @@ -1184,17 +1300,23 @@ export function getRuntimeServiceListNotifierConnectorsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListNotifierConnectors( +export function createRuntimeServiceListNotifierConnectors< + TData = V1ListNotifierConnectorsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListNotifierConnectorsQueryOptions( client, request, @@ -1234,13 +1356,19 @@ export function getRuntimeServiceListConversationsQueryKey( ] as const; } -export function getRuntimeServiceListConversationsQueryOptions( +export function getRuntimeServiceListConversationsQueryOptions< + TData = V1ListConversationsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListConversationsQueryKey( client.instanceId, request, @@ -1252,17 +1380,23 @@ export function getRuntimeServiceListConversationsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListConversations( +export function createRuntimeServiceListConversations< + TData = V1ListConversationsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListConversationsQueryOptions( client, request, @@ -1302,13 +1436,19 @@ export function getRuntimeServiceGetConversationQueryKey( ] as const; } -export function getRuntimeServiceGetConversationQueryOptions( +export function getRuntimeServiceGetConversationQueryOptions< + TData = V1GetConversationResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceGetConversationQueryKey( client.instanceId, request, @@ -1320,17 +1460,23 @@ export function getRuntimeServiceGetConversationQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceGetConversation( +export function createRuntimeServiceGetConversation< + TData = V1GetConversationResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceGetConversationQueryOptions( client, request, @@ -1365,13 +1511,17 @@ export function getRuntimeServiceListToolsQueryKey( return ["RuntimeService", "listTools", instanceId, request ?? {}] as const; } -export function getRuntimeServiceListToolsQueryOptions( +export function getRuntimeServiceListToolsQueryOptions< + TData = V1ListToolsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListToolsQueryKey( client.instanceId, request, @@ -1383,17 +1533,19 @@ export function getRuntimeServiceListToolsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListTools( +export function createRuntimeServiceListTools( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListToolsQueryOptions( client, request, @@ -1424,13 +1576,17 @@ export function getRuntimeServiceIssueDevJWTQueryKey( return ["RuntimeService", "issueDevJWT", instanceId, request ?? {}] as const; } -export function getRuntimeServiceIssueDevJWTQueryOptions( +export function getRuntimeServiceIssueDevJWTQueryOptions< + TData = V1IssueDevJWTResponse, +>( client: RuntimeClient, request: V1IssueDevJWTRequest, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceIssueDevJWTQueryKey( client.instanceId, request, @@ -1442,17 +1598,19 @@ export function getRuntimeServiceIssueDevJWTQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceIssueDevJWT( +export function createRuntimeServiceIssueDevJWT( client: RuntimeClient, request: V1IssueDevJWTRequest, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceIssueDevJWTQueryOptions( client, request, @@ -1492,13 +1650,19 @@ export function getRuntimeServiceAnalyzeVariablesQueryKey( ] as const; } -export function getRuntimeServiceAnalyzeVariablesQueryOptions( +export function getRuntimeServiceAnalyzeVariablesQueryOptions< + TData = V1AnalyzeVariablesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceAnalyzeVariablesQueryKey( client.instanceId, request, @@ -1510,17 +1674,23 @@ export function getRuntimeServiceAnalyzeVariablesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceAnalyzeVariables( +export function createRuntimeServiceAnalyzeVariables< + TData = V1AnalyzeVariablesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceAnalyzeVariablesQueryOptions( client, request, @@ -1560,13 +1730,17 @@ export function getRuntimeServiceListGitCommitsQueryKey( ] as const; } -export function getRuntimeServiceListGitCommitsQueryOptions( +export function getRuntimeServiceListGitCommitsQueryOptions< + TData = V1ListGitCommitsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListGitCommitsQueryKey( client.instanceId, request, @@ -1578,17 +1752,21 @@ export function getRuntimeServiceListGitCommitsQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListGitCommits( +export function createRuntimeServiceListGitCommits< + TData = V1ListGitCommitsResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial>; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListGitCommitsQueryOptions( client, request, @@ -1628,13 +1806,19 @@ export function getRuntimeServiceListGitBranchesQueryKey( ] as const; } -export function getRuntimeServiceListGitBranchesQueryOptions( +export function getRuntimeServiceListGitBranchesQueryOptions< + TData = V1ListGitBranchesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, -): CreateQueryOptions & { queryKey: QueryKey } { +): CreateQueryOptions & { + queryKey: QueryKey; +} { const queryKey = getRuntimeServiceListGitBranchesQueryKey( client.instanceId, request, @@ -1646,17 +1830,23 @@ export function getRuntimeServiceListGitBranchesQueryOptions( queryFn, enabled: !!client.instanceId, ...options?.query, + } as CreateQueryOptions & { + queryKey: QueryKey; }; } -export function createRuntimeServiceListGitBranches( +export function createRuntimeServiceListGitBranches< + TData = V1ListGitBranchesResponse, +>( client: RuntimeClient, request: Omit, "instanceId">, options?: { - query?: Partial>; + query?: Partial< + CreateQueryOptions + >; }, queryClient?: QueryClient, -): CreateQueryResult { +): CreateQueryResult { const queryOptions = getRuntimeServiceListGitBranchesQueryOptions( client, request, From a77cf00a038e2c1932cf6b5c419f5b8b694c568b Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 15:11:10 +0300 Subject: [PATCH 08/27] fix: strip undefined values before proto fromJson in JSON bridge Proto fromJson() rejects undefined field values, but callers may pass them (e.g., TanStack Query's pageParam starts as undefined, or reactive props that resolve asynchronously). Orval's HTTP client silently omitted undefined values; the JSON bridge must do the same. --- web-common/scripts/generate-query-hooks.ts | 15 +- .../v2/gen/connector-service.ts | 78 +-- .../runtime-client/v2/gen/query-service.ts | 318 +++++++----- .../runtime-client/v2/gen/runtime-service.ts | 473 +++++++++++------- 4 files changed, 546 insertions(+), 338 deletions(-) diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts index ebf1635be73..186974e314f 100644 --- a/web-common/scripts/generate-query-hooks.ts +++ b/web-common/scripts/generate-query-hooks.ts @@ -237,6 +237,17 @@ function generateServiceFile(service: ServiceDef): string { `} from "${protoImportPath}";`, ); + // Utility: strip undefined values before passing to proto fromJson + // (proto fromJson rejects undefined; Orval's HTTP client silently omitted them) + lines.push( + ``, + `/** Strip undefined values — proto fromJson rejects them */`, + `// eslint-disable-next-line @typescript-eslint/no-explicit-any`, + `function stripUndefined(obj: Record): Record {`, + ` return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));`, + `}`, + ); + lines.push(``); // --- Query methods --- @@ -269,7 +280,7 @@ function generateServiceFile(service: ServiceDef): string { ` options?: { signal?: AbortSignal },`, `): Promise<${responseType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, - ` ${m.inputType}.fromJson(${requestSpread} as unknown as JsonValue),`, + ` ${m.inputType}.fromJson(stripUndefined(${requestSpread}) as unknown as JsonValue),`, ` { signal: options?.signal },`, ` ).then(r => r.toJson() as unknown as ${responseType});`, `}`, @@ -354,7 +365,7 @@ function generateServiceFile(service: ServiceDef): string { ` request: ${requestType},`, `): Promise<${responseType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, - ` ${m.inputType}.fromJson(${requestSpread} as unknown as JsonValue),`, + ` ${m.inputType}.fromJson(stripUndefined(${requestSpread}) as unknown as JsonValue),`, ` ).then(r => r.toJson() as unknown as ${responseType});`, `}`, ``, diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts index 648aa855528..a240b5cc2e3 100644 --- a/web-common/src/runtime-client/v2/gen/connector-service.ts +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -32,6 +32,14 @@ import { OLAPListTablesRequest, } from "../../../proto/gen/rill/runtime/v1/connectors_pb"; +/** Strip undefined values — proto fromJson rejects them */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function stripUndefined(obj: Record): Record { + return Object.fromEntries( + Object.entries(obj).filter(([, v]) => v !== undefined), + ); +} + /** * Raw RPC call: ConnectorService.ListBuckets */ @@ -42,10 +50,12 @@ export function connectorServiceListBuckets( ): Promise { return client.connectorService .listBuckets( - ListBucketsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListBucketsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListBucketsResponse); @@ -118,10 +128,12 @@ export function connectorServiceListObjects( ): Promise { return client.connectorService .listObjects( - ListObjectsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListObjectsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListObjectsResponse); @@ -194,10 +206,12 @@ export function connectorServiceOLAPListTables( ): Promise { return client.connectorService .oLAPListTables( - OLAPListTablesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + OLAPListTablesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1OLAPListTablesResponse); @@ -270,10 +284,12 @@ export function connectorServiceOLAPGetTable( ): Promise { return client.connectorService .oLAPGetTable( - OLAPGetTableRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + OLAPGetTableRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1OLAPGetTableResponse); @@ -346,10 +362,12 @@ export function connectorServiceListDatabaseSchemas( ): Promise { return client.connectorService .listDatabaseSchemas( - ListDatabaseSchemasRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListDatabaseSchemasRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListDatabaseSchemasResponse); @@ -426,10 +444,12 @@ export function connectorServiceListTables( ): Promise { return client.connectorService .listTables( - ListTablesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListTablesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListTablesResponse); @@ -495,10 +515,12 @@ export function connectorServiceGetTable( ): Promise { return client.connectorService .getTable( - GetTableRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetTableRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetTableResponse); diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts index 379f3b1cdfa..e4961c21dc4 100644 --- a/web-common/src/runtime-client/v2/gen/query-service.ts +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -99,6 +99,14 @@ import { TableRowsRequest, } from "../../../proto/gen/rill/runtime/v1/queries_pb"; +/** Strip undefined values — proto fromJson rejects them */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function stripUndefined(obj: Record): Record { + return Object.fromEntries( + Object.entries(obj).filter(([, v]) => v !== undefined), + ); +} + /** * Raw RPC call: QueryService.MetricsViewAggregation */ @@ -109,10 +117,12 @@ export function queryServiceMetricsViewAggregation( ): Promise { return client.queryService .metricsViewAggregation( - MetricsViewAggregationRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewAggregationRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewAggregationResponse); @@ -190,10 +200,12 @@ export function queryServiceMetricsViewToplist( ): Promise { return client.queryService .metricsViewToplist( - MetricsViewToplistRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewToplistRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewToplistResponse); @@ -270,10 +282,12 @@ export function queryServiceMetricsViewComparison( ): Promise { return client.queryService .metricsViewComparison( - MetricsViewComparisonRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewComparisonRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewComparisonResponse); @@ -351,10 +365,12 @@ export function queryServiceMetricsViewTimeSeries( ): Promise { return client.queryService .metricsViewTimeSeries( - MetricsViewTimeSeriesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewTimeSeriesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewTimeSeriesResponse); @@ -432,10 +448,12 @@ export function queryServiceMetricsViewTotals( ): Promise { return client.queryService .metricsViewTotals( - MetricsViewTotalsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewTotalsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewTotalsResponse); @@ -512,10 +530,12 @@ export function queryServiceMetricsViewRows( ): Promise { return client.queryService .metricsViewRows( - MetricsViewRowsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewRowsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewRowsResponse); @@ -592,10 +612,12 @@ export function queryServiceMetricsViewTimeRange( ): Promise { return client.queryService .metricsViewTimeRange( - MetricsViewTimeRangeRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewTimeRangeRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewTimeRangeResponse); @@ -672,10 +694,12 @@ export function queryServiceMetricsViewSchema( ): Promise { return client.queryService .metricsViewSchema( - MetricsViewSchemaRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewSchemaRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewSchemaResponse); @@ -752,10 +776,12 @@ export function queryServiceMetricsViewSearch( ): Promise { return client.queryService .metricsViewSearch( - MetricsViewSearchRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewSearchRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewSearchResponse); @@ -832,10 +858,12 @@ export function queryServiceMetricsViewTimeRanges( ): Promise { return client.queryService .metricsViewTimeRanges( - MetricsViewTimeRangesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewTimeRangesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewTimeRangesResponse); @@ -913,10 +941,12 @@ export function queryServiceMetricsViewAnnotations( ): Promise { return client.queryService .metricsViewAnnotations( - MetricsViewAnnotationsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + MetricsViewAnnotationsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1MetricsViewAnnotationsResponse); @@ -997,10 +1027,12 @@ export function queryServiceConvertExpressionToMetricsSQL( ): Promise { return client.queryService .convertExpressionToMetricsSQL( - ConvertExpressionToMetricsSQLRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ConvertExpressionToMetricsSQLRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then( @@ -1091,10 +1123,12 @@ export function queryServiceResolveCanvas( ): Promise { return client.queryService .resolveCanvas( - ResolveCanvasRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ResolveCanvasRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ResolveCanvasResponse); @@ -1162,10 +1196,12 @@ export function queryServiceResolveComponent( ): Promise { return client.queryService .resolveComponent( - ResolveComponentRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ResolveComponentRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ResolveComponentResponse); @@ -1242,10 +1278,12 @@ export function queryServiceResolveTemplatedString( ): Promise { return client.queryService .resolveTemplatedString( - ResolveTemplatedStringRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ResolveTemplatedStringRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ResolveTemplatedStringResponse); @@ -1323,10 +1361,12 @@ export function queryServiceColumnRollupInterval( ): Promise { return client.queryService .columnRollupInterval( - ColumnRollupIntervalRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnRollupIntervalRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnRollupIntervalResponse); @@ -1403,10 +1443,12 @@ export function queryServiceColumnTopK( ): Promise { return client.queryService .columnTopK( - ColumnTopKRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnTopKRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnTopKResponse); @@ -1472,10 +1514,12 @@ export function queryServiceColumnNullCount( ): Promise { return client.queryService .columnNullCount( - ColumnNullCountRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnNullCountRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnNullCountResponse); @@ -1552,10 +1596,12 @@ export function queryServiceColumnDescriptiveStatistics( ): Promise { return client.queryService .columnDescriptiveStatistics( - ColumnDescriptiveStatisticsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnDescriptiveStatisticsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then( @@ -1637,10 +1683,12 @@ export function queryServiceColumnTimeGrain( ): Promise { return client.queryService .columnTimeGrain( - ColumnTimeGrainRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnTimeGrainRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnTimeGrainResponse); @@ -1717,10 +1765,12 @@ export function queryServiceColumnNumericHistogram( ): Promise { return client.queryService .columnNumericHistogram( - ColumnNumericHistogramRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnNumericHistogramRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnNumericHistogramResponse); @@ -1798,10 +1848,12 @@ export function queryServiceColumnRugHistogram( ): Promise { return client.queryService .columnRugHistogram( - ColumnRugHistogramRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnRugHistogramRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnRugHistogramResponse); @@ -1878,10 +1930,12 @@ export function queryServiceColumnTimeRange( ): Promise { return client.queryService .columnTimeRange( - ColumnTimeRangeRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnTimeRangeRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnTimeRangeResponse); @@ -1958,10 +2012,12 @@ export function queryServiceColumnCardinality( ): Promise { return client.queryService .columnCardinality( - ColumnCardinalityRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnCardinalityRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnCardinalityResponse); @@ -2038,10 +2094,12 @@ export function queryServiceColumnTimeSeries( ): Promise { return client.queryService .columnTimeSeries( - ColumnTimeSeriesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ColumnTimeSeriesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ColumnTimeSeriesResponse); @@ -2118,10 +2176,12 @@ export function queryServiceTableCardinality( ): Promise { return client.queryService .tableCardinality( - TableCardinalityRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + TableCardinalityRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1TableCardinalityResponse); @@ -2198,10 +2258,12 @@ export function queryServiceTableColumns( ): Promise { return client.queryService .tableColumns( - TableColumnsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + TableColumnsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1TableColumnsResponse); @@ -2267,10 +2329,12 @@ export function queryServiceTableRows( ): Promise { return client.queryService .tableRows( - TableRowsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + TableRowsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1TableRowsResponse); @@ -2332,10 +2396,12 @@ export function queryServiceQuery( ): Promise { return client.queryService .query( - QueryRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + QueryRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1QueryResponse); } @@ -2388,10 +2454,12 @@ export function queryServiceExport( ): Promise { return client.queryService .export( - ExportRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ExportRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1ExportResponse); } @@ -2444,10 +2512,12 @@ export function queryServiceExportReport( ): Promise { return client.queryService .exportReport( - ExportReportRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ExportReportRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1ExportReportResponse); } diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts index 80c398ce894..7f4e61f6d3b 100644 --- a/web-common/src/runtime-client/v2/gen/runtime-service.ts +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -118,6 +118,14 @@ import { UnpackExampleRequest, } from "../../../proto/gen/rill/runtime/v1/api_pb"; +/** Strip undefined values — proto fromJson rejects them */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function stripUndefined(obj: Record): Record { + return Object.fromEntries( + Object.entries(obj).filter(([, v]) => v !== undefined), + ); +} + /** * Raw RPC call: RuntimeService.Ping */ @@ -127,9 +135,10 @@ export function runtimeServicePing( options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService - .ping(PingRequest.fromJson(request as unknown as JsonValue), { - signal: options?.signal, - }) + .ping( + PingRequest.fromJson(stripUndefined(request) as unknown as JsonValue), + { signal: options?.signal }, + ) .then((r) => r.toJson() as unknown as V1PingResponse); } @@ -185,9 +194,10 @@ export function runtimeServiceHealth( options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService - .health(HealthRequest.fromJson(request as unknown as JsonValue), { - signal: options?.signal, - }) + .health( + HealthRequest.fromJson(stripUndefined(request) as unknown as JsonValue), + { signal: options?.signal }, + ) .then((r) => r.toJson() as unknown as V1HealthResponse); } @@ -244,10 +254,12 @@ export function runtimeServiceInstanceHealth( ): Promise { return client.runtimeService .instanceHealth( - InstanceHealthRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + InstanceHealthRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1InstanceHealthResponse); @@ -320,7 +332,9 @@ export function runtimeServiceListInstances( ): Promise { return client.runtimeService .listInstances( - ListInstancesRequest.fromJson(request as unknown as JsonValue), + ListInstancesRequest.fromJson( + stripUndefined(request) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListInstancesResponse); @@ -393,10 +407,12 @@ export function runtimeServiceGetInstance( ): Promise { return client.runtimeService .getInstance( - GetInstanceRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetInstanceRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetInstanceResponse); @@ -462,10 +478,12 @@ export function runtimeServiceListFiles( ): Promise { return client.runtimeService .listFiles( - ListFilesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListFilesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListFilesResponse); @@ -531,10 +549,12 @@ export function runtimeServiceGetFile( ): Promise { return client.runtimeService .getFile( - GetFileRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetFileRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetFileResponse); @@ -595,7 +615,9 @@ export function runtimeServiceListExamples( ): Promise { return client.runtimeService .listExamples( - ListExamplesRequest.fromJson(request as unknown as JsonValue), + ListExamplesRequest.fromJson( + stripUndefined(request) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListExamplesResponse); @@ -663,10 +685,12 @@ export function runtimeServiceQueryResolver( ): Promise { return client.runtimeService .queryResolver( - QueryResolverRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + QueryResolverRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1QueryResolverResponse); @@ -739,10 +763,12 @@ export function runtimeServiceGetLogs( ): Promise { return client.runtimeService .getLogs( - GetLogsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetLogsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetLogsResponse); @@ -803,10 +829,12 @@ export function runtimeServiceListResources( ): Promise { return client.runtimeService .listResources( - ListResourcesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListResourcesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListResourcesResponse); @@ -879,10 +907,12 @@ export function runtimeServiceGetResource( ): Promise { return client.runtimeService .getResource( - GetResourceRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetResourceRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetResourceResponse); @@ -948,10 +978,12 @@ export function runtimeServiceGetExplore( ): Promise { return client.runtimeService .getExplore( - GetExploreRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetExploreRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetExploreResponse); @@ -1017,10 +1049,12 @@ export function runtimeServiceGetModelPartitions( ): Promise { return client.runtimeService .getModelPartitions( - GetModelPartitionsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetModelPartitionsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetModelPartitionsResponse); @@ -1097,7 +1131,9 @@ export function runtimeServiceListConnectorDrivers( ): Promise { return client.runtimeService .listConnectorDrivers( - ListConnectorDriversRequest.fromJson(request as unknown as JsonValue), + ListConnectorDriversRequest.fromJson( + stripUndefined(request) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListConnectorDriversResponse); @@ -1174,10 +1210,12 @@ export function runtimeServiceAnalyzeConnectors( ): Promise { return client.runtimeService .analyzeConnectors( - AnalyzeConnectorsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + AnalyzeConnectorsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1AnalyzeConnectorsResponse); @@ -1254,10 +1292,12 @@ export function runtimeServiceListNotifierConnectors( ): Promise { return client.runtimeService .listNotifierConnectors( - ListNotifierConnectorsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListNotifierConnectorsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListNotifierConnectorsResponse); @@ -1335,10 +1375,12 @@ export function runtimeServiceListConversations( ): Promise { return client.runtimeService .listConversations( - ListConversationsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListConversationsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListConversationsResponse); @@ -1415,10 +1457,12 @@ export function runtimeServiceGetConversation( ): Promise { return client.runtimeService .getConversation( - GetConversationRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GetConversationRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1GetConversationResponse); @@ -1495,10 +1539,12 @@ export function runtimeServiceListTools( ): Promise { return client.runtimeService .listTools( - ListToolsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListToolsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListToolsResponse); @@ -1563,9 +1609,12 @@ export function runtimeServiceIssueDevJWT( options?: { signal?: AbortSignal }, ): Promise { return client.runtimeService - .issueDevJWT(IssueDevJWTRequest.fromJson(request as unknown as JsonValue), { - signal: options?.signal, - }) + .issueDevJWT( + IssueDevJWTRequest.fromJson( + stripUndefined(request) as unknown as JsonValue, + ), + { signal: options?.signal }, + ) .then((r) => r.toJson() as unknown as V1IssueDevJWTResponse); } @@ -1629,10 +1678,12 @@ export function runtimeServiceAnalyzeVariables( ): Promise { return client.runtimeService .analyzeVariables( - AnalyzeVariablesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + AnalyzeVariablesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1AnalyzeVariablesResponse); @@ -1709,10 +1760,12 @@ export function runtimeServiceListGitCommits( ): Promise { return client.runtimeService .listGitCommits( - ListGitCommitsRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListGitCommitsRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListGitCommitsResponse); @@ -1785,10 +1838,12 @@ export function runtimeServiceListGitBranches( ): Promise { return client.runtimeService .listGitBranches( - ListGitBranchesRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ListGitBranchesRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), { signal: options?.signal }, ) .then((r) => r.toJson() as unknown as V1ListGitBranchesResponse); @@ -1864,10 +1919,12 @@ export function runtimeServiceCreateInstance( ): Promise { return client.runtimeService .createInstance( - CreateInstanceRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + CreateInstanceRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1CreateInstanceResponse); } @@ -1923,10 +1980,12 @@ export function runtimeServiceEditInstance( ): Promise { return client.runtimeService .editInstance( - EditInstanceRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + EditInstanceRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1EditInstanceResponse); } @@ -1982,10 +2041,12 @@ export function runtimeServiceDeleteInstance( ): Promise { return client.runtimeService .deleteInstance( - DeleteInstanceRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + DeleteInstanceRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1DeleteInstanceResponse); } @@ -2041,10 +2102,12 @@ export function runtimeServiceReloadConfig( ): Promise { return client.runtimeService .reloadConfig( - ReloadConfigRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ReloadConfigRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1ReloadConfigResponse); } @@ -2100,10 +2163,12 @@ export function runtimeServicePutFile( ): Promise { return client.runtimeService .putFile( - PutFileRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + PutFileRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1PutFileResponse); } @@ -2159,10 +2224,12 @@ export function runtimeServiceCreateDirectory( ): Promise { return client.runtimeService .createDirectory( - CreateDirectoryRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + CreateDirectoryRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1CreateDirectoryResponse); } @@ -2218,10 +2285,12 @@ export function runtimeServiceDeleteFile( ): Promise { return client.runtimeService .deleteFile( - DeleteFileRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + DeleteFileRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1DeleteFileResponse); } @@ -2277,10 +2346,12 @@ export function runtimeServiceRenameFile( ): Promise { return client.runtimeService .renameFile( - RenameFileRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + RenameFileRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1RenameFileResponse); } @@ -2336,10 +2407,12 @@ export function runtimeServiceUnpackExample( ): Promise { return client.runtimeService .unpackExample( - UnpackExampleRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + UnpackExampleRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1UnpackExampleResponse); } @@ -2395,10 +2468,12 @@ export function runtimeServiceUnpackEmpty( ): Promise { return client.runtimeService .unpackEmpty( - UnpackEmptyRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + UnpackEmptyRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1UnpackEmptyResponse); } @@ -2454,10 +2529,12 @@ export function runtimeServiceGenerateMetricsViewFile( ): Promise { return client.runtimeService .generateMetricsViewFile( - GenerateMetricsViewFileRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GenerateMetricsViewFileRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GenerateMetricsViewFileResponse); } @@ -2512,10 +2589,12 @@ export function runtimeServiceGenerateCanvasFile( ): Promise { return client.runtimeService .generateCanvasFile( - GenerateCanvasFileRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GenerateCanvasFileRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GenerateCanvasFileResponse); } @@ -2571,10 +2650,12 @@ export function runtimeServiceGenerateResolver( ): Promise { return client.runtimeService .generateResolver( - GenerateResolverRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GenerateResolverRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GenerateResolverResponse); } @@ -2630,10 +2711,12 @@ export function runtimeServiceGenerateRenderer( ): Promise { return client.runtimeService .generateRenderer( - GenerateRendererRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GenerateRendererRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GenerateRendererResponse); } @@ -2689,10 +2772,12 @@ export function runtimeServiceCreateTrigger( ): Promise { return client.runtimeService .createTrigger( - CreateTriggerRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + CreateTriggerRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1CreateTriggerResponse); } @@ -2748,10 +2833,12 @@ export function runtimeServiceShareConversation( ): Promise { return client.runtimeService .shareConversation( - ShareConversationRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ShareConversationRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1ShareConversationResponse); } @@ -2807,10 +2894,12 @@ export function runtimeServiceForkConversation( ): Promise { return client.runtimeService .forkConversation( - ForkConversationRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + ForkConversationRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1ForkConversationResponse); } @@ -2866,10 +2955,12 @@ export function runtimeServiceComplete( ): Promise { return client.runtimeService .complete( - CompleteRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + CompleteRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1CompleteResponse); } @@ -2925,10 +3016,12 @@ export function runtimeServiceGitStatus( ): Promise { return client.runtimeService .gitStatus( - GitStatusRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GitStatusRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GitStatusResponse); } @@ -2984,10 +3077,12 @@ export function runtimeServiceGitCommit( ): Promise { return client.runtimeService .gitCommit( - GitCommitRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GitCommitRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GitCommitResponse); } @@ -3043,10 +3138,12 @@ export function runtimeServiceRestoreGitCommit( ): Promise { return client.runtimeService .restoreGitCommit( - RestoreGitCommitRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + RestoreGitCommitRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1RestoreGitCommitResponse); } @@ -3102,10 +3199,12 @@ export function runtimeServiceGitMergeToBranch( ): Promise { return client.runtimeService .gitMergeToBranch( - GitMergeToBranchRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GitMergeToBranchRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GitMergeToBranchResponse); } @@ -3161,10 +3260,12 @@ export function runtimeServiceGitSwitchBranch( ): Promise { return client.runtimeService .gitSwitchBranch( - GitSwitchBranchRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GitSwitchBranchRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GitSwitchBranchResponse); } @@ -3220,10 +3321,12 @@ export function runtimeServiceGitPull( ): Promise { return client.runtimeService .gitPull( - GitPullRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GitPullRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GitPullResponse); } @@ -3279,10 +3382,12 @@ export function runtimeServiceGitPush( ): Promise { return client.runtimeService .gitPush( - GitPushRequest.fromJson({ - instanceId: client.instanceId, - ...request, - } as unknown as JsonValue), + GitPushRequest.fromJson( + stripUndefined({ + instanceId: client.instanceId, + ...request, + }) as unknown as JsonValue, + ), ) .then((r) => r.toJson() as unknown as V1GitPushResponse); } From 369e0b54dcfe044f45b067a1a2a86ecc28d254b6 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 15:31:10 +0300 Subject: [PATCH 09/27] fix: emit default values in proto toJson to match gRPC-Gateway output Proto3 toJson() omits fields with default values (0, "", false) by default. gRPC-Gateway includes them. This caused missing fields like low: 0 in histogram bins, breaking D3 scale computations and rendering blank histograms for columns with data starting near zero. --- web-common/scripts/generate-query-hooks.ts | 4 +- .../v2/gen/connector-service.ts | 47 ++- .../runtime-client/v2/gen/query-service.ts | 207 ++++++++++-- .../runtime-client/v2/gen/runtime-service.ts | 318 +++++++++++++++--- 4 files changed, 487 insertions(+), 89 deletions(-) diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts index 186974e314f..dab7be7f933 100644 --- a/web-common/scripts/generate-query-hooks.ts +++ b/web-common/scripts/generate-query-hooks.ts @@ -282,7 +282,7 @@ function generateServiceFile(service: ServiceDef): string { ` return client.${serviceClientProp}.${m.methodKey}(`, ` ${m.inputType}.fromJson(stripUndefined(${requestSpread}) as unknown as JsonValue),`, ` { signal: options?.signal },`, - ` ).then(r => r.toJson() as unknown as ${responseType});`, + ` ).then(r => r.toJson({ emitDefaultValues: true }) as unknown as ${responseType});`, `}`, ``, ); @@ -366,7 +366,7 @@ function generateServiceFile(service: ServiceDef): string { `): Promise<${responseType}> {`, ` return client.${serviceClientProp}.${m.methodKey}(`, ` ${m.inputType}.fromJson(stripUndefined(${requestSpread}) as unknown as JsonValue),`, - ` ).then(r => r.toJson() as unknown as ${responseType});`, + ` ).then(r => r.toJson({ emitDefaultValues: true }) as unknown as ${responseType});`, `}`, ``, ); diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts index a240b5cc2e3..782e82a840a 100644 --- a/web-common/src/runtime-client/v2/gen/connector-service.ts +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -58,7 +58,12 @@ export function connectorServiceListBuckets( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListBucketsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListBucketsResponse, + ); } export function getConnectorServiceListBucketsQueryKey( @@ -136,7 +141,12 @@ export function connectorServiceListObjects( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListObjectsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListObjectsResponse, + ); } export function getConnectorServiceListObjectsQueryKey( @@ -214,7 +224,12 @@ export function connectorServiceOLAPListTables( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1OLAPListTablesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1OLAPListTablesResponse, + ); } export function getConnectorServiceOLAPListTablesQueryKey( @@ -292,7 +307,12 @@ export function connectorServiceOLAPGetTable( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1OLAPGetTableResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1OLAPGetTableResponse, + ); } export function getConnectorServiceOLAPGetTableQueryKey( @@ -370,7 +390,12 @@ export function connectorServiceListDatabaseSchemas( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListDatabaseSchemasResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListDatabaseSchemasResponse, + ); } export function getConnectorServiceListDatabaseSchemasQueryKey( @@ -452,7 +477,12 @@ export function connectorServiceListTables( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListTablesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListTablesResponse, + ); } export function getConnectorServiceListTablesQueryKey( @@ -523,7 +553,10 @@ export function connectorServiceGetTable( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetTableResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GetTableResponse, + ); } export function getConnectorServiceGetTableQueryKey( diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts index e4961c21dc4..f6988272e8f 100644 --- a/web-common/src/runtime-client/v2/gen/query-service.ts +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -125,7 +125,12 @@ export function queryServiceMetricsViewAggregation( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewAggregationResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewAggregationResponse, + ); } export function getQueryServiceMetricsViewAggregationQueryKey( @@ -208,7 +213,12 @@ export function queryServiceMetricsViewToplist( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewToplistResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewToplistResponse, + ); } export function getQueryServiceMetricsViewToplistQueryKey( @@ -290,7 +300,12 @@ export function queryServiceMetricsViewComparison( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewComparisonResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewComparisonResponse, + ); } export function getQueryServiceMetricsViewComparisonQueryKey( @@ -373,7 +388,12 @@ export function queryServiceMetricsViewTimeSeries( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewTimeSeriesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewTimeSeriesResponse, + ); } export function getQueryServiceMetricsViewTimeSeriesQueryKey( @@ -456,7 +476,12 @@ export function queryServiceMetricsViewTotals( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewTotalsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewTotalsResponse, + ); } export function getQueryServiceMetricsViewTotalsQueryKey( @@ -538,7 +563,12 @@ export function queryServiceMetricsViewRows( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewRowsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewRowsResponse, + ); } export function getQueryServiceMetricsViewRowsQueryKey( @@ -620,7 +650,12 @@ export function queryServiceMetricsViewTimeRange( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewTimeRangeResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewTimeRangeResponse, + ); } export function getQueryServiceMetricsViewTimeRangeQueryKey( @@ -702,7 +737,12 @@ export function queryServiceMetricsViewSchema( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewSchemaResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewSchemaResponse, + ); } export function getQueryServiceMetricsViewSchemaQueryKey( @@ -784,7 +824,12 @@ export function queryServiceMetricsViewSearch( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewSearchResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewSearchResponse, + ); } export function getQueryServiceMetricsViewSearchQueryKey( @@ -866,7 +911,12 @@ export function queryServiceMetricsViewTimeRanges( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewTimeRangesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewTimeRangesResponse, + ); } export function getQueryServiceMetricsViewTimeRangesQueryKey( @@ -949,7 +999,12 @@ export function queryServiceMetricsViewAnnotations( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1MetricsViewAnnotationsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1MetricsViewAnnotationsResponse, + ); } export function getQueryServiceMetricsViewAnnotationsQueryKey( @@ -1036,7 +1091,10 @@ export function queryServiceConvertExpressionToMetricsSQL( { signal: options?.signal }, ) .then( - (r) => r.toJson() as unknown as V1ConvertExpressionToMetricsSQLResponse, + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ConvertExpressionToMetricsSQLResponse, ); } @@ -1131,7 +1189,12 @@ export function queryServiceResolveCanvas( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ResolveCanvasResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ResolveCanvasResponse, + ); } export function getQueryServiceResolveCanvasQueryKey( @@ -1204,7 +1267,12 @@ export function queryServiceResolveComponent( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ResolveComponentResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ResolveComponentResponse, + ); } export function getQueryServiceResolveComponentQueryKey( @@ -1286,7 +1354,12 @@ export function queryServiceResolveTemplatedString( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ResolveTemplatedStringResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ResolveTemplatedStringResponse, + ); } export function getQueryServiceResolveTemplatedStringQueryKey( @@ -1369,7 +1442,12 @@ export function queryServiceColumnRollupInterval( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnRollupIntervalResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnRollupIntervalResponse, + ); } export function getQueryServiceColumnRollupIntervalQueryKey( @@ -1451,7 +1529,12 @@ export function queryServiceColumnTopK( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnTopKResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnTopKResponse, + ); } export function getQueryServiceColumnTopKQueryKey( @@ -1522,7 +1605,12 @@ export function queryServiceColumnNullCount( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnNullCountResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnNullCountResponse, + ); } export function getQueryServiceColumnNullCountQueryKey( @@ -1605,7 +1693,10 @@ export function queryServiceColumnDescriptiveStatistics( { signal: options?.signal }, ) .then( - (r) => r.toJson() as unknown as V1ColumnDescriptiveStatisticsResponse, + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnDescriptiveStatisticsResponse, ); } @@ -1691,7 +1782,12 @@ export function queryServiceColumnTimeGrain( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnTimeGrainResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnTimeGrainResponse, + ); } export function getQueryServiceColumnTimeGrainQueryKey( @@ -1773,7 +1869,12 @@ export function queryServiceColumnNumericHistogram( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnNumericHistogramResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnNumericHistogramResponse, + ); } export function getQueryServiceColumnNumericHistogramQueryKey( @@ -1856,7 +1957,12 @@ export function queryServiceColumnRugHistogram( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnRugHistogramResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnRugHistogramResponse, + ); } export function getQueryServiceColumnRugHistogramQueryKey( @@ -1938,7 +2044,12 @@ export function queryServiceColumnTimeRange( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnTimeRangeResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnTimeRangeResponse, + ); } export function getQueryServiceColumnTimeRangeQueryKey( @@ -2020,7 +2131,12 @@ export function queryServiceColumnCardinality( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnCardinalityResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnCardinalityResponse, + ); } export function getQueryServiceColumnCardinalityQueryKey( @@ -2102,7 +2218,12 @@ export function queryServiceColumnTimeSeries( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ColumnTimeSeriesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ColumnTimeSeriesResponse, + ); } export function getQueryServiceColumnTimeSeriesQueryKey( @@ -2184,7 +2305,12 @@ export function queryServiceTableCardinality( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1TableCardinalityResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1TableCardinalityResponse, + ); } export function getQueryServiceTableCardinalityQueryKey( @@ -2266,7 +2392,12 @@ export function queryServiceTableColumns( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1TableColumnsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1TableColumnsResponse, + ); } export function getQueryServiceTableColumnsQueryKey( @@ -2337,7 +2468,10 @@ export function queryServiceTableRows( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1TableRowsResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1TableRowsResponse, + ); } export function getQueryServiceTableRowsQueryKey( @@ -2403,7 +2537,10 @@ export function queryServiceQuery( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1QueryResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1QueryResponse, + ); } export function getQueryServiceQueryMutationOptions( @@ -2461,7 +2598,10 @@ export function queryServiceExport( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1ExportResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1ExportResponse, + ); } export function getQueryServiceExportMutationOptions( @@ -2519,7 +2659,12 @@ export function queryServiceExportReport( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1ExportReportResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ExportReportResponse, + ); } export function getQueryServiceExportReportMutationOptions( diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts index 7f4e61f6d3b..ae179bc69fa 100644 --- a/web-common/src/runtime-client/v2/gen/runtime-service.ts +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -139,7 +139,9 @@ export function runtimeServicePing( PingRequest.fromJson(stripUndefined(request) as unknown as JsonValue), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1PingResponse); + .then( + (r) => r.toJson({ emitDefaultValues: true }) as unknown as V1PingResponse, + ); } export function getRuntimeServicePingQueryKey( @@ -198,7 +200,10 @@ export function runtimeServiceHealth( HealthRequest.fromJson(stripUndefined(request) as unknown as JsonValue), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1HealthResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1HealthResponse, + ); } export function getRuntimeServiceHealthQueryKey( @@ -262,7 +267,12 @@ export function runtimeServiceInstanceHealth( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1InstanceHealthResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1InstanceHealthResponse, + ); } export function getRuntimeServiceInstanceHealthQueryKey( @@ -337,7 +347,12 @@ export function runtimeServiceListInstances( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListInstancesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListInstancesResponse, + ); } export function getRuntimeServiceListInstancesQueryKey( @@ -415,7 +430,12 @@ export function runtimeServiceGetInstance( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetInstanceResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GetInstanceResponse, + ); } export function getRuntimeServiceGetInstanceQueryKey( @@ -486,7 +506,10 @@ export function runtimeServiceListFiles( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListFilesResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1ListFilesResponse, + ); } export function getRuntimeServiceListFilesQueryKey( @@ -557,7 +580,10 @@ export function runtimeServiceGetFile( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetFileResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GetFileResponse, + ); } export function getRuntimeServiceGetFileQueryKey( @@ -620,7 +646,12 @@ export function runtimeServiceListExamples( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListExamplesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListExamplesResponse, + ); } export function getRuntimeServiceListExamplesQueryKey( @@ -693,7 +724,12 @@ export function runtimeServiceQueryResolver( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1QueryResolverResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1QueryResolverResponse, + ); } export function getRuntimeServiceQueryResolverQueryKey( @@ -771,7 +807,10 @@ export function runtimeServiceGetLogs( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetLogsResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GetLogsResponse, + ); } export function getRuntimeServiceGetLogsQueryKey( @@ -837,7 +876,12 @@ export function runtimeServiceListResources( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListResourcesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListResourcesResponse, + ); } export function getRuntimeServiceListResourcesQueryKey( @@ -915,7 +959,12 @@ export function runtimeServiceGetResource( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetResourceResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GetResourceResponse, + ); } export function getRuntimeServiceGetResourceQueryKey( @@ -986,7 +1035,12 @@ export function runtimeServiceGetExplore( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetExploreResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GetExploreResponse, + ); } export function getRuntimeServiceGetExploreQueryKey( @@ -1057,7 +1111,12 @@ export function runtimeServiceGetModelPartitions( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetModelPartitionsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GetModelPartitionsResponse, + ); } export function getRuntimeServiceGetModelPartitionsQueryKey( @@ -1136,7 +1195,12 @@ export function runtimeServiceListConnectorDrivers( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListConnectorDriversResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListConnectorDriversResponse, + ); } export function getRuntimeServiceListConnectorDriversQueryKey( @@ -1218,7 +1282,12 @@ export function runtimeServiceAnalyzeConnectors( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1AnalyzeConnectorsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1AnalyzeConnectorsResponse, + ); } export function getRuntimeServiceAnalyzeConnectorsQueryKey( @@ -1300,7 +1369,12 @@ export function runtimeServiceListNotifierConnectors( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListNotifierConnectorsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListNotifierConnectorsResponse, + ); } export function getRuntimeServiceListNotifierConnectorsQueryKey( @@ -1383,7 +1457,12 @@ export function runtimeServiceListConversations( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListConversationsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListConversationsResponse, + ); } export function getRuntimeServiceListConversationsQueryKey( @@ -1465,7 +1544,12 @@ export function runtimeServiceGetConversation( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1GetConversationResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GetConversationResponse, + ); } export function getRuntimeServiceGetConversationQueryKey( @@ -1547,7 +1631,10 @@ export function runtimeServiceListTools( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListToolsResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1ListToolsResponse, + ); } export function getRuntimeServiceListToolsQueryKey( @@ -1615,7 +1702,12 @@ export function runtimeServiceIssueDevJWT( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1IssueDevJWTResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1IssueDevJWTResponse, + ); } export function getRuntimeServiceIssueDevJWTQueryKey( @@ -1686,7 +1778,12 @@ export function runtimeServiceAnalyzeVariables( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1AnalyzeVariablesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1AnalyzeVariablesResponse, + ); } export function getRuntimeServiceAnalyzeVariablesQueryKey( @@ -1768,7 +1865,12 @@ export function runtimeServiceListGitCommits( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListGitCommitsResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListGitCommitsResponse, + ); } export function getRuntimeServiceListGitCommitsQueryKey( @@ -1846,7 +1948,12 @@ export function runtimeServiceListGitBranches( ), { signal: options?.signal }, ) - .then((r) => r.toJson() as unknown as V1ListGitBranchesResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ListGitBranchesResponse, + ); } export function getRuntimeServiceListGitBranchesQueryKey( @@ -1926,7 +2033,12 @@ export function runtimeServiceCreateInstance( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1CreateInstanceResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1CreateInstanceResponse, + ); } export function getRuntimeServiceCreateInstanceMutationOptions( @@ -1987,7 +2099,12 @@ export function runtimeServiceEditInstance( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1EditInstanceResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1EditInstanceResponse, + ); } export function getRuntimeServiceEditInstanceMutationOptions( @@ -2048,7 +2165,12 @@ export function runtimeServiceDeleteInstance( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1DeleteInstanceResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1DeleteInstanceResponse, + ); } export function getRuntimeServiceDeleteInstanceMutationOptions( @@ -2109,7 +2231,12 @@ export function runtimeServiceReloadConfig( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1ReloadConfigResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ReloadConfigResponse, + ); } export function getRuntimeServiceReloadConfigMutationOptions( @@ -2170,7 +2297,10 @@ export function runtimeServicePutFile( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1PutFileResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1PutFileResponse, + ); } export function getRuntimeServicePutFileMutationOptions( @@ -2231,7 +2361,12 @@ export function runtimeServiceCreateDirectory( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1CreateDirectoryResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1CreateDirectoryResponse, + ); } export function getRuntimeServiceCreateDirectoryMutationOptions( @@ -2292,7 +2427,12 @@ export function runtimeServiceDeleteFile( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1DeleteFileResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1DeleteFileResponse, + ); } export function getRuntimeServiceDeleteFileMutationOptions( @@ -2353,7 +2493,12 @@ export function runtimeServiceRenameFile( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1RenameFileResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1RenameFileResponse, + ); } export function getRuntimeServiceRenameFileMutationOptions( @@ -2414,7 +2559,12 @@ export function runtimeServiceUnpackExample( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1UnpackExampleResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1UnpackExampleResponse, + ); } export function getRuntimeServiceUnpackExampleMutationOptions( @@ -2475,7 +2625,12 @@ export function runtimeServiceUnpackEmpty( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1UnpackEmptyResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1UnpackEmptyResponse, + ); } export function getRuntimeServiceUnpackEmptyMutationOptions( @@ -2536,7 +2691,12 @@ export function runtimeServiceGenerateMetricsViewFile( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GenerateMetricsViewFileResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GenerateMetricsViewFileResponse, + ); } export function getRuntimeServiceGenerateMetricsViewFileMutationOptions( @@ -2596,7 +2756,12 @@ export function runtimeServiceGenerateCanvasFile( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GenerateCanvasFileResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GenerateCanvasFileResponse, + ); } export function getRuntimeServiceGenerateCanvasFileMutationOptions( @@ -2657,7 +2822,12 @@ export function runtimeServiceGenerateResolver( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GenerateResolverResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GenerateResolverResponse, + ); } export function getRuntimeServiceGenerateResolverMutationOptions( @@ -2718,7 +2888,12 @@ export function runtimeServiceGenerateRenderer( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GenerateRendererResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GenerateRendererResponse, + ); } export function getRuntimeServiceGenerateRendererMutationOptions( @@ -2779,7 +2954,12 @@ export function runtimeServiceCreateTrigger( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1CreateTriggerResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1CreateTriggerResponse, + ); } export function getRuntimeServiceCreateTriggerMutationOptions( @@ -2840,7 +3020,12 @@ export function runtimeServiceShareConversation( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1ShareConversationResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ShareConversationResponse, + ); } export function getRuntimeServiceShareConversationMutationOptions( @@ -2901,7 +3086,12 @@ export function runtimeServiceForkConversation( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1ForkConversationResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1ForkConversationResponse, + ); } export function getRuntimeServiceForkConversationMutationOptions( @@ -2962,7 +3152,10 @@ export function runtimeServiceComplete( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1CompleteResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1CompleteResponse, + ); } export function getRuntimeServiceCompleteMutationOptions( @@ -3023,7 +3216,10 @@ export function runtimeServiceGitStatus( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GitStatusResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GitStatusResponse, + ); } export function getRuntimeServiceGitStatusMutationOptions( @@ -3084,7 +3280,10 @@ export function runtimeServiceGitCommit( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GitCommitResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GitCommitResponse, + ); } export function getRuntimeServiceGitCommitMutationOptions( @@ -3145,7 +3344,12 @@ export function runtimeServiceRestoreGitCommit( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1RestoreGitCommitResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1RestoreGitCommitResponse, + ); } export function getRuntimeServiceRestoreGitCommitMutationOptions( @@ -3206,7 +3410,12 @@ export function runtimeServiceGitMergeToBranch( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GitMergeToBranchResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GitMergeToBranchResponse, + ); } export function getRuntimeServiceGitMergeToBranchMutationOptions( @@ -3267,7 +3476,12 @@ export function runtimeServiceGitSwitchBranch( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GitSwitchBranchResponse); + .then( + (r) => + r.toJson({ + emitDefaultValues: true, + }) as unknown as V1GitSwitchBranchResponse, + ); } export function getRuntimeServiceGitSwitchBranchMutationOptions( @@ -3328,7 +3542,10 @@ export function runtimeServiceGitPull( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GitPullResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GitPullResponse, + ); } export function getRuntimeServiceGitPullMutationOptions( @@ -3389,7 +3606,10 @@ export function runtimeServiceGitPush( }) as unknown as JsonValue, ), ) - .then((r) => r.toJson() as unknown as V1GitPushResponse); + .then( + (r) => + r.toJson({ emitDefaultValues: true }) as unknown as V1GitPushResponse, + ); } export function getRuntimeServiceGitPushMutationOptions( From 301244f7fd149a871ca8b5f15f2f437c5d8ed225 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 17:47:03 +0300 Subject: [PATCH 10/27] fix: deep-strip undefined values in `stripUndefined` for nested request objects The shallow `stripUndefined` only removed top-level undefined values. Nested objects like `timeRange: { start: undefined }` passed through to `fromJson()` which rejects undefined, causing JSON decode errors. --- web-common/scripts/generate-query-hooks.ts | 19 +++++++++++++++-- .../v2/gen/connector-service.ts | 21 +++++++++++++++---- .../runtime-client/v2/gen/query-service.ts | 21 +++++++++++++++---- .../runtime-client/v2/gen/runtime-service.ts | 21 +++++++++++++++---- 4 files changed, 68 insertions(+), 14 deletions(-) diff --git a/web-common/scripts/generate-query-hooks.ts b/web-common/scripts/generate-query-hooks.ts index dab7be7f933..be1e95c5879 100644 --- a/web-common/scripts/generate-query-hooks.ts +++ b/web-common/scripts/generate-query-hooks.ts @@ -241,10 +241,25 @@ function generateServiceFile(service: ServiceDef): string { // (proto fromJson rejects undefined; Orval's HTTP client silently omitted them) lines.push( ``, - `/** Strip undefined values — proto fromJson rejects them */`, + `/** Deep-strip undefined values — proto fromJson rejects them */`, `// eslint-disable-next-line @typescript-eslint/no-explicit-any`, `function stripUndefined(obj: Record): Record {`, - ` return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));`, + ` const result: Record = {};`, + ` for (const [key, value] of Object.entries(obj)) {`, + ` if (value === undefined) continue;`, + ` if (Array.isArray(value)) {`, + ` result[key] = value.map((item) =>`, + ` item && typeof item === "object" && !Array.isArray(item)`, + ` ? stripUndefined(item)`, + ` : item,`, + ` );`, + ` } else if (value && typeof value === "object" && !(value instanceof Date)) {`, + ` result[key] = stripUndefined(value);`, + ` } else {`, + ` result[key] = value;`, + ` }`, + ` }`, + ` return result;`, `}`, ); diff --git a/web-common/src/runtime-client/v2/gen/connector-service.ts b/web-common/src/runtime-client/v2/gen/connector-service.ts index 782e82a840a..fafdd528f2e 100644 --- a/web-common/src/runtime-client/v2/gen/connector-service.ts +++ b/web-common/src/runtime-client/v2/gen/connector-service.ts @@ -32,12 +32,25 @@ import { OLAPListTablesRequest, } from "../../../proto/gen/rill/runtime/v1/connectors_pb"; -/** Strip undefined values — proto fromJson rejects them */ +/** Deep-strip undefined values — proto fromJson rejects them */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function stripUndefined(obj: Record): Record { - return Object.fromEntries( - Object.entries(obj).filter(([, v]) => v !== undefined), - ); + const result: Record = {}; + for (const [key, value] of Object.entries(obj)) { + if (value === undefined) continue; + if (Array.isArray(value)) { + result[key] = value.map((item) => + item && typeof item === "object" && !Array.isArray(item) + ? stripUndefined(item) + : item, + ); + } else if (value && typeof value === "object" && !(value instanceof Date)) { + result[key] = stripUndefined(value); + } else { + result[key] = value; + } + } + return result; } /** diff --git a/web-common/src/runtime-client/v2/gen/query-service.ts b/web-common/src/runtime-client/v2/gen/query-service.ts index f6988272e8f..209ca53c250 100644 --- a/web-common/src/runtime-client/v2/gen/query-service.ts +++ b/web-common/src/runtime-client/v2/gen/query-service.ts @@ -99,12 +99,25 @@ import { TableRowsRequest, } from "../../../proto/gen/rill/runtime/v1/queries_pb"; -/** Strip undefined values — proto fromJson rejects them */ +/** Deep-strip undefined values — proto fromJson rejects them */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function stripUndefined(obj: Record): Record { - return Object.fromEntries( - Object.entries(obj).filter(([, v]) => v !== undefined), - ); + const result: Record = {}; + for (const [key, value] of Object.entries(obj)) { + if (value === undefined) continue; + if (Array.isArray(value)) { + result[key] = value.map((item) => + item && typeof item === "object" && !Array.isArray(item) + ? stripUndefined(item) + : item, + ); + } else if (value && typeof value === "object" && !(value instanceof Date)) { + result[key] = stripUndefined(value); + } else { + result[key] = value; + } + } + return result; } /** diff --git a/web-common/src/runtime-client/v2/gen/runtime-service.ts b/web-common/src/runtime-client/v2/gen/runtime-service.ts index ae179bc69fa..5446b9b5a7a 100644 --- a/web-common/src/runtime-client/v2/gen/runtime-service.ts +++ b/web-common/src/runtime-client/v2/gen/runtime-service.ts @@ -118,12 +118,25 @@ import { UnpackExampleRequest, } from "../../../proto/gen/rill/runtime/v1/api_pb"; -/** Strip undefined values — proto fromJson rejects them */ +/** Deep-strip undefined values — proto fromJson rejects them */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function stripUndefined(obj: Record): Record { - return Object.fromEntries( - Object.entries(obj).filter(([, v]) => v !== undefined), - ); + const result: Record = {}; + for (const [key, value] of Object.entries(obj)) { + if (value === undefined) continue; + if (Array.isArray(value)) { + result[key] = value.map((item) => + item && typeof item === "object" && !Array.isArray(item) + ? stripUndefined(item) + : item, + ); + } else if (value && typeof value === "object" && !(value instanceof Date)) { + result[key] = stripUndefined(value); + } else { + result[key] = value; + } + } + return result; } /** From 840e75730b0e07f20b75a5bc64cd1bca5b0d4526 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Wed, 25 Feb 2026 12:29:57 +0300 Subject: [PATCH 11/27] feat: port request queue to ConnectRPC transport interceptor Port the two-level heap request queue as a ConnectRPC interceptor. Maps method names (instead of URLs) to priorities and controls concurrency via the same architecture as HttpRequestQueue. --- web-common/src/runtime-client/v2/heap.ts | 129 +++++++++ .../runtime-client/v2/request-priorities.ts | 37 +++ .../src/runtime-client/v2/request-queue.ts | 271 ++++++++++++++++++ .../src/runtime-client/v2/runtime-client.ts | 6 + 4 files changed, 443 insertions(+) create mode 100644 web-common/src/runtime-client/v2/heap.ts create mode 100644 web-common/src/runtime-client/v2/request-priorities.ts create mode 100644 web-common/src/runtime-client/v2/request-queue.ts diff --git a/web-common/src/runtime-client/v2/heap.ts b/web-common/src/runtime-client/v2/heap.ts new file mode 100644 index 00000000000..3780f3f019d --- /dev/null +++ b/web-common/src/runtime-client/v2/heap.ts @@ -0,0 +1,129 @@ +/** + * Generic binary max-heap with O(log n) insert/update and O(1) key-based lookup. + * Ported from http-request-queue/Heap.ts for use with ConnectRPC request queue. + */ +export class Heap { + private readonly array: Array = []; + private valueToIdxMap: Map = new Map(); + + constructor( + private readonly compareFunction: (a: Item, b: Item) => number, + private readonly keyGetter: (a: Item) => Key, + ) {} + + public empty() { + return this.array.length === 0; + } + + public peek(): Item { + return this.array[0]; + } + + public get(key: Key): Item | undefined { + const idx = this.valueToIdxMap.get(key); + if (idx === undefined) return undefined; + return this.array[idx]; + } + + public push(value: Item) { + this.setIndex(value, this.array.length); + this.array.push(value); + this.moveUp(this.array.length - 1); + } + + public pop() { + if (this.array.length > 0) { + const value = this.array[0]; + this.valueToIdxMap.delete(this.keyGetter(value)); + if (this.array.length > 1) { + this.array[0] = this.array.pop()!; + this.setIndex(this.array[0], 0); + this.moveDown(0); + } else { + this.array.pop(); + } + return value; + } + } + + public delete(value: Item | undefined, key?: Key) { + key ??= this.keyGetter(value!); + const idx = value?.index ?? this.valueToIdxMap.get(key); + if (idx === undefined || idx < 0) return; + + value = this.array[idx]; + this.valueToIdxMap.delete(key); + delete value.index; + if (idx < this.array.length - 1) { + this.array[idx] = this.array.pop()!; + this.array[idx].index = idx; + this.setIndex(this.array[idx], idx); + this.moveDown(idx); + } else { + this.array.pop(); + } + } + + public updateItem(value: Item) { + const idx = value.index ?? this.valueToIdxMap.get(this.keyGetter(value)); + if (idx === undefined || idx < 0) return; + if (!this.moveUp(idx)) { + this.moveDown(idx); + } + } + + private moveUp(idx: number) { + let movedUp = false; + while (idx > 0) { + const parentIdx = (idx - 1) >> 1; + if (this.compareFunction(this.array[idx], this.array[parentIdx]) > 0) { + this.swap(idx, parentIdx); + idx = parentIdx; + movedUp = true; + } else { + break; + } + } + return movedUp; + } + + private moveDown(idx: number) { + let movedDown = false; + while (idx < this.array.length) { + let childIdx = 2 * idx + 1; + + if (childIdx >= this.array.length) { + break; + } + + if ( + childIdx + 1 < this.array.length && + this.compareFunction(this.array[childIdx + 1], this.array[childIdx]) > 0 + ) { + childIdx++; + } + + if (this.compareFunction(this.array[childIdx], this.array[idx]) > 0) { + this.swap(idx, childIdx); + idx = childIdx; + movedDown = true; + } else { + break; + } + } + return movedDown; + } + + private swap(idx0: number, idx1: number) { + const val0 = this.array[idx0]; + this.array[idx0] = this.array[idx1]; + this.array[idx1] = val0; + this.setIndex(this.array[idx0], idx0); + this.setIndex(this.array[idx1], idx1); + } + + private setIndex(item: Item, index: number) { + this.valueToIdxMap.set(this.keyGetter(item), index); + item.index = index; + } +} diff --git a/web-common/src/runtime-client/v2/request-priorities.ts b/web-common/src/runtime-client/v2/request-priorities.ts new file mode 100644 index 00000000000..a9be73f4790 --- /dev/null +++ b/web-common/src/runtime-client/v2/request-priorities.ts @@ -0,0 +1,37 @@ +/** + * Priority mapping for ConnectRPC method names. + * Mirrors the URL-based priorities from http-request-queue/priorities.ts, + * mapped to ConnectRPC service method names instead of URL path segments. + */ + +// Maps ConnectRPC method names to priority weights. +// Higher priority = dispatched first. +const MethodPriorities: Record = { + // High priority: user-visible data + MetricsViewRows: 50, + MetricsViewTimeRange: 50, + ColumnProfile: 45, + + // Medium: charts and summaries + ColumnNullCount: 40, + TableCardinality: 35, + ColumnCardinality: 35, + MetricsViewAggregation: 30, + MetricsViewTimeSeries: 30, + NumericHistogram: 30, + MetricsViewTotals: 30, + + // Low: exploratory queries + MetricsViewToplist: 10, + RugHistogram: 10, + DescriptiveStatistics: 10, +}; + +export const DEFAULT_PRIORITY = 10; +export const ACTIVE_COLUMN_PRIORITY_OFFSET = 50; +export const ACTIVE_PRIORITY = 10; +export const INACTIVE_PRIORITY = 5; + +export function getPriorityForMethod(methodName: string): number { + return MethodPriorities[methodName] ?? DEFAULT_PRIORITY; +} diff --git a/web-common/src/runtime-client/v2/request-queue.ts b/web-common/src/runtime-client/v2/request-queue.ts new file mode 100644 index 00000000000..801c3c06118 --- /dev/null +++ b/web-common/src/runtime-client/v2/request-queue.ts @@ -0,0 +1,271 @@ +import type { Interceptor } from "@connectrpc/connect"; +import { appQueryStatusStore } from "../application-store"; +import { Heap } from "./heap"; +import { + ACTIVE_COLUMN_PRIORITY_OFFSET, + ACTIVE_PRIORITY, + INACTIVE_PRIORITY, + getPriorityForMethod, +} from "./request-priorities"; + +interface QueueEntry { + key: string; + weight: number; + id: number; + columnName?: string; + + resolve?: (value: unknown) => void; + reject?: (reason: unknown) => void; + fn?: () => Promise; + + index?: number; +} + +interface NameEntry { + name: string; + weight: number; + columnMap: Map>; + queryHeap: Heap; + + index?: number; +} + +function createNameHeap(): Heap { + return new Heap( + (a, b) => a.weight - b.weight, + (a) => a.name, + ); +} + +function createQueryHeap(): Heap { + return new Heap( + (a, b) => { + if (a.weight === b.weight) { + // equal weights: preserve insertion order (lower id = earlier) + return b.id - a.id; + } + return a.weight - b.weight; + }, + (a) => a.key, + ); +} + +function getDefaultConcurrency(): number { + try { + if ( + window.location.protocol === "https:" || + window.location.hostname !== "localhost" + ) { + return 200; + } + } catch { + // no-op: SSR or test environment + } + return 5; +} + +export class RequestQueue { + private readonly nameHeap = createNameHeap(); + private activeCount = 0; + private ids = 0; + private readonly maxConcurrent: number; + + constructor(opts?: { maxConcurrent?: number }) { + this.maxConcurrent = opts?.maxConcurrent ?? getDefaultConcurrency(); + } + + /** + * Queue a request. Resolves when the request function completes. + * The request won't fire until the queue has capacity. + */ + enqueue(opts: { + priority: number; + resourceName?: string; + columnName?: string; + signal?: AbortSignal; + fn: () => Promise; + }): Promise { + const resourceName = opts.resourceName ?? "__default__"; + const nameEntry = this.getNameEntry(resourceName); + + const entry: QueueEntry = { + key: `${opts.columnName ?? ""}:${this.ids}`, + weight: opts.priority, + id: this.ids++, + columnName: opts.columnName, + fn: opts.fn as () => Promise, + }; + + if (opts.columnName) { + if (!nameEntry.columnMap.has(opts.columnName)) { + nameEntry.columnMap.set(opts.columnName, []); + } + nameEntry.columnMap.get(opts.columnName)!.push(entry); + } + + nameEntry.queryHeap.push(entry); + + const promise = new Promise((resolve, reject) => { + entry.resolve = resolve as (value: unknown) => void; + entry.reject = reject; + }); + + // If already aborted, reject immediately + if (opts.signal?.aborted) { + nameEntry.queryHeap.delete(entry); + if (entry.columnName) { + this.clearEntryForColumn(nameEntry, entry); + } + if (nameEntry.queryHeap.empty()) { + this.nameHeap.delete(nameEntry); + } + entry.reject?.(opts.signal.reason); + return promise; + } + + // Handle abort while queued + opts.signal?.addEventListener( + "abort", + () => { + // Only remove if still queued (has fn; cleared on fire) + if (!entry.fn) return; + nameEntry.queryHeap.delete(entry); + if (entry.columnName) { + this.clearEntryForColumn(nameEntry, entry); + } + if (nameEntry.queryHeap.empty()) { + this.nameHeap.delete(nameEntry); + } + entry.reject?.(opts.signal!.reason); + }, + { once: true }, + ); + + this.drain(); + return promise; + } + + /** Boost or reduce priority for column-level queries (active column in Explore). */ + prioritiseColumn( + resourceName: string, + columnName: string, + active: boolean, + ): void { + const nameEntry = this.nameHeap.get(resourceName); + if (!nameEntry) return; + const columnEntries = nameEntry.columnMap.get(columnName); + if (!columnEntries) return; + for (const entry of columnEntries) { + if (active && entry.weight < ACTIVE_COLUMN_PRIORITY_OFFSET) { + entry.weight += ACTIVE_COLUMN_PRIORITY_OFFSET; + } else if (!active && entry.weight > ACTIVE_COLUMN_PRIORITY_OFFSET) { + entry.weight -= ACTIVE_COLUMN_PRIORITY_OFFSET; + } + nameEntry.queryHeap.updateItem(entry); + } + } + + /** Remove all queued requests for a resource (entity deleted/renamed). */ + removeByName(resourceName: string): void { + this.nameHeap.delete(undefined, resourceName); + } + + /** Deprioritize a resource (user navigated away). */ + inactiveByName(resourceName: string): void { + const nameEntry = this.nameHeap.get(resourceName); + if (!nameEntry) return; + nameEntry.weight = INACTIVE_PRIORITY; + this.nameHeap.updateItem(nameEntry); + } + + private drain(): void { + while (!this.nameHeap.empty() && this.activeCount < this.maxConcurrent) { + const topNameEntry = this.nameHeap.peek(); + const entry = topNameEntry.queryHeap.pop(); + if (!entry) break; + + this.fireEntry(entry); + this.activeCount++; + + if (entry.columnName && topNameEntry.columnMap.has(entry.columnName)) { + this.clearEntryForColumn(topNameEntry, entry); + } + + if (topNameEntry.queryHeap.empty()) { + this.nameHeap.pop(); + } + } + appQueryStatusStore.set(this.activeCount > 0); + } + + private async fireEntry(entry: QueueEntry): Promise { + const fn = entry.fn!; + entry.fn = undefined; // mark as fired + try { + const result = await fn(); + entry.resolve?.(result); + } catch (err) { + entry.reject?.(err); + } + this.activeCount--; + appQueryStatusStore.set(this.activeCount > 0); + this.drain(); + } + + private getNameEntry(name: string): NameEntry { + let nameEntry = this.nameHeap.get(name); + if (!nameEntry) { + nameEntry = { + name, + weight: ACTIVE_PRIORITY, + columnMap: new Map(), + queryHeap: createQueryHeap(), + }; + this.nameHeap.push(nameEntry); + } + return nameEntry; + } + + private clearEntryForColumn(nameEntry: NameEntry, entry: QueueEntry): void { + const entries = nameEntry.columnMap.get(entry.columnName!); + if (!entries) return; + const idx = entries.indexOf(entry); + if (idx !== -1) entries.splice(idx, 1); + } +} + +/** + * Extract the resource name from a ConnectRPC request message. + * Looks for common field patterns in runtime API request messages. + */ +function extractResourceName(req: { message: unknown }): string | undefined { + const msg = req.message as Record; + // MetricsView queries use metricsViewName or metricsView + if (typeof msg.metricsViewName === "string") return msg.metricsViewName; + if (typeof msg.metricsView === "string") return msg.metricsView; + // Column profiling queries use tableName + if (typeof msg.tableName === "string") return msg.tableName; + return undefined; +} + +/** + * Creates a ConnectRPC interceptor that routes requests through the RequestQueue. + * The interceptor wraps the `next()` call so the queue controls when requests fire. + */ +export function createQueueInterceptor(queue: RequestQueue): Interceptor { + return (next) => async (req) => { + const priority = getPriorityForMethod(req.method.name); + const resourceName = extractResourceName(req); + const columnName = (req.message as Record).columnName as + | string + | undefined; + + return queue.enqueue({ + priority, + resourceName, + columnName, + signal: req.signal, + fn: () => next(req), + }); + }; +} diff --git a/web-common/src/runtime-client/v2/runtime-client.ts b/web-common/src/runtime-client/v2/runtime-client.ts index fd664a52259..c600c2b1feb 100644 --- a/web-common/src/runtime-client/v2/runtime-client.ts +++ b/web-common/src/runtime-client/v2/runtime-client.ts @@ -8,12 +8,14 @@ import { JWT_EXPIRY_WARNING_WINDOW, CHECK_RUNTIME_STORE_FOR_JWT_INTERVAL, } from "../constants"; +import { RequestQueue, createQueueInterceptor } from "./request-queue"; export type AuthContext = "user" | "mock" | "magic" | "embed"; export class RuntimeClient { readonly instanceId: string; readonly transport: Transport; + readonly requestQueue: RequestQueue; // JWT state (mutable; read by the transport interceptor) private currentJwt: string | undefined; @@ -35,10 +37,14 @@ export class RuntimeClient { this.currentJwt = opts.jwt; this.jwtReceivedAt = opts.jwt ? Date.now() : 0; this.authContext = opts.authContext ?? "user"; + this.requestQueue = new RequestQueue(); this.transport = createConnectTransport({ baseUrl: opts.host, interceptors: [ + // Queue controls when requests fire (outermost: wraps everything) + createQueueInterceptor(this.requestQueue), + // JWT interceptor adds auth header just before the network call (next) => async (req) => { if (this.currentJwt) { await this.waitForFreshJwt(); From ae800e07e01e70063cbf62df6edfa9dd88fac367 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 11:51:12 +0300 Subject: [PATCH 12/27] refactor: migrate connectors and column-profile to v2 RuntimeClient MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrate 8 files from the global runtime store to useRuntimeClient(): - ConnectorExplorer, ConnectorEntry, TableEntry, TableSchema, TableMenuItems, TableWorkspaceHeader, ConnectorRefreshButton - ColumnProfile Exercises all key migration patterns: - $runtime.instanceId → useRuntimeClient() + client.instanceId - Orval createQuery hooks → v2 generated hooks (request object style) - Orval createMutation → v2 generated mutation hooks - Structural type compatibility between proto and Orval response types --- .../column-profile/ColumnProfile.svelte | 17 +++---- .../connectors/ConnectorRefreshButton.svelte | 13 +++--- .../connectors/explorer/ConnectorEntry.svelte | 15 +++---- .../explorer/ConnectorExplorer.svelte | 45 ++++++++++--------- .../connectors/explorer/TableEntry.svelte | 7 +-- .../connectors/explorer/TableMenuItems.svelte | 5 ++- .../connectors/explorer/TableSchema.svelte | 7 +-- .../explorer/TableWorkspaceHeader.svelte | 6 +-- 8 files changed, 59 insertions(+), 56 deletions(-) diff --git a/web-common/src/features/column-profile/ColumnProfile.svelte b/web-common/src/features/column-profile/ColumnProfile.svelte index 442a016ff99..ef9421577f1 100644 --- a/web-common/src/features/column-profile/ColumnProfile.svelte +++ b/web-common/src/features/column-profile/ColumnProfile.svelte @@ -1,11 +1,11 @@ diff --git a/web-common/src/features/connectors/explorer/ConnectorEntry.svelte b/web-common/src/features/connectors/explorer/ConnectorEntry.svelte index 56214e50d8b..4887634c34f 100644 --- a/web-common/src/features/connectors/explorer/ConnectorEntry.svelte +++ b/web-common/src/features/connectors/explorer/ConnectorEntry.svelte @@ -1,11 +1,9 @@ diff --git a/web-common/src/features/connectors/explorer/TableEntry.svelte b/web-common/src/features/connectors/explorer/TableEntry.svelte index 5a9edd94756..763a1aaccc7 100644 --- a/web-common/src/features/connectors/explorer/TableEntry.svelte +++ b/web-common/src/features/connectors/explorer/TableEntry.svelte @@ -8,7 +8,7 @@ import TableMenuItems from "./TableMenuItems.svelte"; import TableSchema from "./TableSchema.svelte"; import { useIsModelingSupportedForConnectorOLAP as useIsModelingSupportedForConnector } from "../selectors"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "../../../runtime-client/v2"; import type { ConnectorExplorerStore } from "./connector-explorer-store"; import { makeFullyQualifiedTableName, @@ -27,14 +27,15 @@ let contextMenuOpen = false; + const client = useRuntimeClient(); + $: expandedStore = store.getItem(connector, database, databaseSchema, table); $: showSchema = $expandedStore; const { allowContextMenu, allowNavigateToTable, allowShowSchema } = store; - $: ({ instanceId: runtimeInstanceId } = $runtime); $: isModelingSupportedForConnector = useIsModelingSupportedForConnector( - runtimeInstanceId, + client.instanceId, connector, ); $: isModelingSupported = $isModelingSupportedForConnector.data; diff --git a/web-common/src/features/connectors/explorer/TableMenuItems.svelte b/web-common/src/features/connectors/explorer/TableMenuItems.svelte index f3de0cc180d..b0ee5c8dc83 100644 --- a/web-common/src/features/connectors/explorer/TableMenuItems.svelte +++ b/web-common/src/features/connectors/explorer/TableMenuItems.svelte @@ -10,7 +10,7 @@ MetricsEventScreenName, MetricsEventSpace, } from "@rilldata/web-common/metrics/service/MetricsTypes"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "../../../runtime-client/v2"; import { generateMetricsFromTable } from "../../metrics-views/ai-generation/generateMetricsView"; import { createSqlModelFromTable, @@ -27,7 +27,8 @@ export let isModelingSupported: boolean | undefined = false; export let isOlapConnector: boolean = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + $: ({ instanceId } = client); async function handleCreateModel( modelCreationFn: () => Promise<[string, string]>, diff --git a/web-common/src/features/connectors/explorer/TableSchema.svelte b/web-common/src/features/connectors/explorer/TableSchema.svelte index d4d42c8251d..673c3fdb9d1 100644 --- a/web-common/src/features/connectors/explorer/TableSchema.svelte +++ b/web-common/src/features/connectors/explorer/TableSchema.svelte @@ -2,16 +2,17 @@ import Tooltip from "../../../components/tooltip/Tooltip.svelte"; import TooltipContent from "../../../components/tooltip/TooltipContent.svelte"; import { useGetTable } from "../selectors"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "../../../runtime-client/v2"; export let connector: string; export let database: string = ""; // The backend interprets an empty string as the default database export let databaseSchema: string = ""; // The backend interprets an empty string as the default schema export let table: string; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + $: newTableQuery = useGetTable( - instanceId, + client.instanceId, connector, database, databaseSchema, diff --git a/web-common/src/features/connectors/explorer/TableWorkspaceHeader.svelte b/web-common/src/features/connectors/explorer/TableWorkspaceHeader.svelte index a5bf922344c..40c432e1331 100644 --- a/web-common/src/features/connectors/explorer/TableWorkspaceHeader.svelte +++ b/web-common/src/features/connectors/explorer/TableWorkspaceHeader.svelte @@ -9,7 +9,7 @@ import { WorkspaceHeader } from "../../../layout/workspace"; import { BehaviourEventMedium } from "../../../metrics/service/BehaviourEventTypes"; import { MetricsEventSpace } from "../../../metrics/service/MetricsTypes"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "../../../runtime-client/v2"; import { ResourceKind } from "../../entity-management/resource-selectors"; import { featureFlags } from "../../feature-flags"; import { useCreateMetricsViewFromTableUIAction } from "../../metrics-views/ai-generation/generateMetricsView"; @@ -21,10 +21,10 @@ const { ai } = featureFlags; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); $: createMetricsViewFromTable = useCreateMetricsViewFromTableUIAction( - instanceId, + client.instanceId, connector, database, databaseSchema, From d7603012e22ce10b49d13e9f425cbe5ede264b49 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 12:17:11 +0300 Subject: [PATCH 13/27] refactor: migrate more connectors components to v2 RuntimeClient Migrate DatabaseExplorer, DatabaseEntry, DatabaseSchemaEntry, TableInspector, and References to use useRuntimeClient() from context. This demonstrates eliminating instanceId prop drilling: child components now get the RuntimeClient from Svelte context instead of receiving instanceId as a prop from parents. --- .../connectors/explorer/ConnectorEntry.svelte | 2 +- .../connectors/explorer/DatabaseEntry.svelte | 7 ++-- .../explorer/DatabaseExplorer.svelte | 8 +++-- .../explorer/DatabaseSchemaEntry.svelte | 6 ++-- .../connectors/olap/TableInspector.svelte | 12 ++++--- .../models/inspector/References.svelte | 33 ++++++++----------- 6 files changed, 35 insertions(+), 33 deletions(-) diff --git a/web-common/src/features/connectors/explorer/ConnectorEntry.svelte b/web-common/src/features/connectors/explorer/ConnectorEntry.svelte index 4887634c34f..496d34ab8dd 100644 --- a/web-common/src/features/connectors/explorer/ConnectorEntry.svelte +++ b/web-common/src/features/connectors/explorer/ConnectorEntry.svelte @@ -65,7 +65,7 @@ {#if expanded} - + {/if} {/if} diff --git a/web-common/src/features/connectors/explorer/DatabaseEntry.svelte b/web-common/src/features/connectors/explorer/DatabaseEntry.svelte index 5a60f9708c1..41c5fc0807e 100644 --- a/web-common/src/features/connectors/explorer/DatabaseEntry.svelte +++ b/web-common/src/features/connectors/explorer/DatabaseEntry.svelte @@ -4,21 +4,23 @@ import CaretDownIcon from "../../../components/icons/CaretDownIcon.svelte"; import { LIST_SLIDE_DURATION as duration } from "../../../layout/config"; import type { V1AnalyzedConnector } from "../../../runtime-client"; + import { useRuntimeClient } from "../../../runtime-client/v2"; import DatabaseSchemaEntry from "./DatabaseSchemaEntry.svelte"; import { useListDatabaseSchemas } from "../selectors"; import type { ConnectorExplorerStore } from "./connector-explorer-store"; - export let instanceId: string; export let connector: V1AnalyzedConnector; export let database: string; export let store: ConnectorExplorerStore; + const client = useRuntimeClient(); + $: connectorName = connector?.name as string; $: expandedStore = store.getItem(connectorName, database); $: expanded = $expandedStore; $: databaseSchemasQuery = useListDatabaseSchemas( - instanceId, + client.instanceId, connectorName, database, ); @@ -60,7 +62,6 @@ {:else} {#each data as schema (schema)} {#each data as database (database)} - + {/each} {/if} diff --git a/web-common/src/features/connectors/explorer/DatabaseSchemaEntry.svelte b/web-common/src/features/connectors/explorer/DatabaseSchemaEntry.svelte index 0992754eb7f..3caf4639953 100644 --- a/web-common/src/features/connectors/explorer/DatabaseSchemaEntry.svelte +++ b/web-common/src/features/connectors/explorer/DatabaseSchemaEntry.svelte @@ -5,25 +5,27 @@ V1AnalyzedConnector, V1TableInfo, } from "../../../runtime-client"; + import { useRuntimeClient } from "../../../runtime-client/v2"; import TableEntry from "./TableEntry.svelte"; import { useInfiniteListTables } from "../selectors"; import Button from "../../../components/button/Button.svelte"; import type { ConnectorExplorerStore } from "./connector-explorer-store"; import { onMount } from "svelte"; - export let instanceId: string; export let connector: V1AnalyzedConnector; export let database: string; export let databaseSchema: string; export let store: ConnectorExplorerStore; + const client = useRuntimeClient(); + $: connectorName = connector?.name as string; $: expandedStore = store.getItem(connectorName, database, databaseSchema); $: expanded = $expandedStore; $: tablesQuery = useInfiniteListTables( - instanceId, + client.instanceId, connectorName, database, databaseSchema, diff --git a/web-common/src/features/connectors/olap/TableInspector.svelte b/web-common/src/features/connectors/olap/TableInspector.svelte index c7f6c94e7aa..2fa7214fdcf 100644 --- a/web-common/src/features/connectors/olap/TableInspector.svelte +++ b/web-common/src/features/connectors/olap/TableInspector.svelte @@ -8,8 +8,8 @@ import { createQueryServiceTableCardinality, createQueryServiceTableColumns, - } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + } from "@rilldata/web-common/runtime-client/v2/gen"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { slide } from "svelte/transition"; export let connector: string; @@ -21,15 +21,17 @@ let isReconciling = false; let hasUnsavedChanges = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); - $: cardinalityQuery = createQueryServiceTableCardinality(instanceId, table, { + $: cardinalityQuery = createQueryServiceTableCardinality(client, { + tableName: table, connector, database, databaseSchema, }); - $: profileColumnsQuery = createQueryServiceTableColumns(instanceId, table, { + $: profileColumnsQuery = createQueryServiceTableColumns(client, { + tableName: table, connector, database, databaseSchema, diff --git a/web-common/src/features/models/inspector/References.svelte b/web-common/src/features/models/inspector/References.svelte index 7c0b2f2bf31..3fa18246c65 100644 --- a/web-common/src/features/models/inspector/References.svelte +++ b/web-common/src/features/models/inspector/References.svelte @@ -4,29 +4,31 @@ import CollapsibleSectionTitle from "@rilldata/web-common/layout/CollapsibleSectionTitle.svelte"; import { LIST_SLIDE_DURATION } from "@rilldata/web-common/layout/config"; import { formatCompactInteger } from "@rilldata/web-common/lib/formatters"; + import type { V1ResourceName } from "@rilldata/web-common/runtime-client"; import { - type V1ResourceName, - createQueryServiceTableCardinality, createRuntimeServiceGetResource, - } from "@rilldata/web-common/runtime-client"; + createQueryServiceTableCardinality, + } from "@rilldata/web-common/runtime-client/v2/gen"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { derived } from "svelte/store"; import { slide } from "svelte/transition"; - import { runtime } from "../../../runtime-client/runtime-store"; import { removeLeadingSlash } from "../../entity-management/entity-mappers"; import WithModelResultTooltip from "./WithModelResultTooltip.svelte"; export let refs: V1ResourceName[]; export let modelHasError: boolean; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); let showReferences = true; $: referencedResourcesStore = derived( refs.map((ref) => { - return createRuntimeServiceGetResource(instanceId, { - "name.name": ref.name as string, - "name.kind": ref.kind as string, + return createRuntimeServiceGetResource(client, { + name: { + name: ref.name as string, + kind: ref.kind as string, + }, }); }), (refs) => refs.map((ref) => ref.data), @@ -35,18 +37,11 @@ $: referencedResourceCardinalitiesStore = derived( refs.map((ref) => { - return createQueryServiceTableCardinality( - instanceId, - ref.name as string, - {}, - { - query: { - select: (data) => +(data.cardinality ?? 0), - }, - }, - ); + return createQueryServiceTableCardinality(client, { + tableName: ref.name as string, + }); }), - (refs) => refs.map((ref) => ref.data), + (refs) => refs.map((ref) => Number(ref.data?.cardinality ?? 0)), ); $: referencedResourcesCardinalities = $referencedResourceCardinalitiesStore; From 133a4112b24e22a749254544ac1e5d42079f15bd Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 14:47:44 +0300 Subject: [PATCH 14/27] refactor: migrate column-profile, canvas, and remaining connectors to v2 RuntimeClient - column-profile/queries.ts: all functions accept RuntimeClient instead of instanceId - connectors/selectors.ts: useListDatabaseSchemas, useInfiniteListTables, useGetTable accept RuntimeClient; useIsModelingSupported* functions left as-is (callers out of scope) - Column profile components (NumericProfile, TimestampProfile, VarcharProfile, NestedProfile): replace $runtime with useRuntimeClient() - WorkspaceInspector: replace $runtime with useRuntimeClient(), switch Orval hooks to v2 - Canvas components (CanvasInitialization, KPIProvider, PageEditor): replace $runtime with useRuntimeClient(), switch Orval hooks to v2 - Update already-migrated callers to pass client instead of client.instanceId --- .../canvas/CanvasInitialization.svelte | 10 +- .../canvas/components/kpi/KPIProvider.svelte | 28 ++--- .../canvas/inspector/PageEditor.svelte | 16 +-- .../column-profile/ColumnProfile.svelte | 2 +- .../column-types/NestedProfile.svelte | 10 +- .../column-types/NumericProfile.svelte | 24 ++-- .../column-types/TimestampProfile.svelte | 8 +- .../column-types/VarcharProfile.svelte | 10 +- .../src/features/column-profile/queries.ts | 103 +++++++++--------- .../connectors/explorer/DatabaseEntry.svelte | 2 +- .../explorer/DatabaseExplorer.svelte | 2 +- .../explorer/DatabaseSchemaEntry.svelte | 2 +- .../connectors/explorer/TableSchema.svelte | 2 +- .../src/features/connectors/selectors.ts | 98 ++++++++++------- .../inspector/WorkspaceInspector.svelte | 36 +++--- 15 files changed, 186 insertions(+), 167 deletions(-) diff --git a/web-common/src/features/canvas/CanvasInitialization.svelte b/web-common/src/features/canvas/CanvasInitialization.svelte index 8be3de8d643..21fb9e3c1a9 100644 --- a/web-common/src/features/canvas/CanvasInitialization.svelte +++ b/web-common/src/features/canvas/CanvasInitialization.svelte @@ -13,10 +13,11 @@ import { onNavigate } from "$app/navigation"; import { writable } from "svelte/store"; import { - createQueryServiceResolveCanvas, type V1MetricsView, type V1ResolveCanvasResponse, } from "@rilldata/web-common/runtime-client"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; + import { createQueryServiceResolveCanvas } from "@rilldata/web-common/runtime-client/v2/gen"; import { ResourceKind, useResource, @@ -30,6 +31,8 @@ export let showBanner = false; export let projectId: string | undefined = undefined; + const client = useRuntimeClient(); + let resolvedStore: CanvasStore | undefined = undefined; $: ({ url } = $page); @@ -45,9 +48,8 @@ $: fetchedCanvasQuery = !existingStore ? createQueryServiceResolveCanvas( - instanceId, - canvasName, - {}, + client, + { canvas: canvasName }, { query: { retry: 5, diff --git a/web-common/src/features/canvas/components/kpi/KPIProvider.svelte b/web-common/src/features/canvas/components/kpi/KPIProvider.svelte index 96461e02066..0aae232c825 100644 --- a/web-common/src/features/canvas/components/kpi/KPIProvider.svelte +++ b/web-common/src/features/canvas/components/kpi/KPIProvider.svelte @@ -1,12 +1,12 @@ diff --git a/web-common/src/features/canvas/inspector/fields/MultiPositionalFieldsInput.svelte b/web-common/src/features/canvas/inspector/fields/MultiPositionalFieldsInput.svelte index f4e48219be1..0f5d69f99e5 100644 --- a/web-common/src/features/canvas/inspector/fields/MultiPositionalFieldsInput.svelte +++ b/web-common/src/features/canvas/inspector/fields/MultiPositionalFieldsInput.svelte @@ -1,7 +1,7 @@ diff --git a/web-common/src/features/canvas/inspector/fields/SingleFieldInput.svelte b/web-common/src/features/canvas/inspector/fields/SingleFieldInput.svelte index ff4a96f6912..1a1427b14ed 100644 --- a/web-common/src/features/canvas/inspector/fields/SingleFieldInput.svelte +++ b/web-common/src/features/canvas/inspector/fields/SingleFieldInput.svelte @@ -4,9 +4,11 @@ import InputLabel from "@rilldata/web-common/components/forms/InputLabel.svelte"; import Search from "@rilldata/web-common/components/search/Search.svelte"; import { getCanvasStore } from "@rilldata/web-common/features/canvas/state-managers/state-managers"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { useMetricFieldData } from "../selectors"; + const client = useRuntimeClient(); + export let metricName: string; export let label: string | undefined = undefined; export let id: string; @@ -23,9 +25,7 @@ let open = false; let searchValue = ""; - $: ({ instanceId } = $runtime); - - $: ctx = getCanvasStore(canvasName, instanceId); + $: ctx = getCanvasStore(canvasName, client.instanceId); $: ({ getTimeDimensionForMetricView } = ctx.canvasEntity.metricsView); $: timeDimension = getTimeDimensionForMetricView(metricName); diff --git a/web-common/src/features/canvas/state-managers/state-managers.ts b/web-common/src/features/canvas/state-managers/state-managers.ts index f2035f05a6c..bf816bbbaf5 100644 --- a/web-common/src/features/canvas/state-managers/state-managers.ts +++ b/web-common/src/features/canvas/state-managers/state-managers.ts @@ -1,5 +1,6 @@ import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import type { QueryClient } from "@tanstack/svelte-query"; import { type Writable } from "svelte/store"; import { CanvasEntity } from "../stores/canvas-entity"; @@ -8,6 +9,7 @@ import type { CanvasResponse } from "../selector"; export type CanvasStore = { runtime: Writable; + runtimeClient: RuntimeClient; canvasEntity: CanvasEntity; queryClient: QueryClient; }; @@ -58,6 +60,7 @@ export function setCanvasStore( canvasName: string, instanceId: string, response: CanvasResponse, + runtimeClient?: RuntimeClient, ): CanvasStore { const id = makeCanvasId(canvasName, instanceId); @@ -71,6 +74,7 @@ export function setCanvasStore( const canvasEntity = new CanvasEntity(canvasName, instanceId, response); const store: CanvasStore = { runtime: runtime, + runtimeClient: runtimeClient!, canvasEntity, queryClient, }; diff --git a/web-common/src/features/components/charts/ChartContainer.svelte b/web-common/src/features/components/charts/ChartContainer.svelte index 93781458ed7..7f0e9efb46d 100644 --- a/web-common/src/features/components/charts/ChartContainer.svelte +++ b/web-common/src/features/components/charts/ChartContainer.svelte @@ -8,7 +8,7 @@ import ExploreLink from "@rilldata/web-common/features/explores/explore-link/ExploreLink.svelte"; import { MetricsViewSelectors } from "@rilldata/web-common/features/metrics-views/metrics-view-selectors"; import { DashboardState_ActivePage } from "@rilldata/web-common/proto/gen/rill/ui/v1/dashboard_pb"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import Filter from "@rilldata/web-common/components/icons/Filter.svelte"; import FilterChipsReadOnly from "@rilldata/web-common/features/dashboards/filters/FilterChipsReadOnly.svelte"; @@ -37,6 +37,8 @@ export let organization: string | undefined = undefined; export let project: string | undefined = undefined; + const client = useRuntimeClient(); + let chartProvider: ChartProvider; $: { const chartConfig = CHART_CONFIG[chartType]; @@ -55,7 +57,7 @@ themeMode === "dark" ? "dark" : "light" ]; - $: metricsViewSelectors = new MetricsViewSelectors($runtime.instanceId); + $: metricsViewSelectors = new MetricsViewSelectors(client.instanceId); $: measures = metricsViewSelectors.getMeasuresForMetricView( $spec.metrics_view, @@ -66,7 +68,7 @@ ); $: chartDataQuery = chartProvider.createChartDataQuery( - runtime, + client, timeAndFilterStore, ); @@ -86,7 +88,7 @@ $: chartTitle = chartProvider?.chartTitle?.($chartData.fields) ?? ""; $: exploreAvailability = showExploreLink - ? useExploreAvailability($runtime.instanceId, $spec?.metrics_view) + ? useExploreAvailability(client.instanceId, $spec?.metrics_view) : readable({ isAvailable: false, exploreName: null, diff --git a/web-common/src/features/components/charts/cartesian/CartesianChartProvider.ts b/web-common/src/features/components/charts/cartesian/CartesianChartProvider.ts index 6a2ab4151f6..5383d81b7a2 100644 --- a/web-common/src/features/components/charts/cartesian/CartesianChartProvider.ts +++ b/web-common/src/features/components/charts/cartesian/CartesianChartProvider.ts @@ -17,15 +17,15 @@ import { import { mergeFilters } from "@rilldata/web-common/features/dashboards/pivot/pivot-merge-filters"; import { createInExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { TimeAndFilterStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import { - getQueryServiceMetricsViewAggregationQueryOptions, - type MetricsViewSpecMeasure, - type V1Expression, - type V1MetricsViewAggregationDimension, - type V1MetricsViewAggregationMeasure, - type V1TimeRange, +import type { + MetricsViewSpecMeasure, + V1Expression, + V1MetricsViewAggregationDimension, + V1MetricsViewAggregationMeasure, + V1TimeRange, } from "@rilldata/web-common/runtime-client"; -import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; +import { getQueryServiceMetricsViewAggregationQueryOptions } from "@rilldata/web-common/runtime-client/v2/gen"; import { createQuery, keepPreviousData } from "@tanstack/svelte-query"; import { derived, @@ -150,7 +150,7 @@ export class CartesianChartProvider { } createChartDataQuery( - runtime: Writable, + client: RuntimeClient, timeAndFilterStore: Readable, ): ChartDataQuery { const config = get(this.spec); @@ -199,8 +199,8 @@ export class CartesianChartProvider { // Create topN query for x dimension const topNXQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, @@ -208,7 +208,6 @@ export class CartesianChartProvider { comparisonTimeRange, showTimeComparison, } = $timeAndFilterStore; - const instanceId = $runtime.instanceId; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && config.x?.type === "nominal" && @@ -254,9 +253,9 @@ export class CartesianChartProvider { } return getQueryServiceMetricsViewAggregationQueryOptions( - instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures: topNMeasures, dimensions: [{ name: dimensionName }], sort: xAxisSort ? [xAxisSort] : undefined, @@ -278,8 +277,8 @@ export class CartesianChartProvider { // Create topN query for color dimension const topNColorQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && @@ -293,9 +292,9 @@ export class CartesianChartProvider { ); return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: [{ name: colorDimensionName }], sort: config?.y?.field @@ -317,8 +316,8 @@ export class CartesianChartProvider { const topNColorQuery = createQuery(topNColorQueryOptionsStore); const queryOptionsStore = derived( - [runtime, timeAndFilterStore, topNXQuery, topNColorQuery], - ([$runtime, $timeAndFilterStore, $topNXQuery, $topNColorQuery]) => { + [timeAndFilterStore, topNXQuery, topNColorQuery], + ([$timeAndFilterStore, $topNXQuery, $topNColorQuery]) => { const { timeRange, where, @@ -409,9 +408,9 @@ export class CartesianChartProvider { .flat(); return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures: measuresWithComparison, dimensions, where: combinedWhere, diff --git a/web-common/src/features/components/charts/circular/CircularChartProvider.ts b/web-common/src/features/components/charts/circular/CircularChartProvider.ts index ddcc90f3715..23465210994 100644 --- a/web-common/src/features/components/charts/circular/CircularChartProvider.ts +++ b/web-common/src/features/components/charts/circular/CircularChartProvider.ts @@ -10,14 +10,14 @@ import { isFieldConfig } from "@rilldata/web-common/features/components/charts/u import { mergeFilters } from "@rilldata/web-common/features/dashboards/pivot/pivot-merge-filters"; import { createInExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { TimeAndFilterStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import type { V1Expression } from "@rilldata/web-common/runtime-client"; -import { - getQueryServiceMetricsViewAggregationQueryOptions, - type V1MetricsViewAggregationDimension, - type V1MetricsViewAggregationMeasure, - type V1MetricsViewAggregationSort, +import type { + V1Expression, + V1MetricsViewAggregationDimension, + V1MetricsViewAggregationMeasure, + V1MetricsViewAggregationSort, } from "@rilldata/web-common/runtime-client"; -import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import { getQueryServiceMetricsViewAggregationQueryOptions } from "@rilldata/web-common/runtime-client/v2/gen"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, keepPreviousData } from "@tanstack/svelte-query"; import { derived, @@ -65,7 +65,7 @@ export class CircularChartProvider { } createChartDataQuery( - runtime: Writable, + client: RuntimeClient, timeAndFilterStore: Readable, ): ChartDataQuery { const config = get(this.spec); @@ -90,10 +90,9 @@ export class CircularChartProvider { // Create topN query for color dimension const topNColorQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; - const instanceId = $runtime.instanceId; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && !!colorDimensionName && @@ -103,9 +102,9 @@ export class CircularChartProvider { const topNWhere = getFilterWithNullHandling(where, config.color); return getQueryServiceMetricsViewAggregationQueryOptions( - instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: [{ name: colorDimensionName }], sort: colorSort ? [colorSort] : undefined, @@ -125,8 +124,8 @@ export class CircularChartProvider { const topNColorQuery = createQuery(topNColorQueryOptionsStore); const totalQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; const enabled = !!showTotal && @@ -136,9 +135,9 @@ export class CircularChartProvider { const totalWhere = getFilterWithNullHandling(where, config.color); return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, where: totalWhere, timeRange, @@ -155,8 +154,8 @@ export class CircularChartProvider { const totalQuery = createQuery(totalQueryOptionsStore); const queryOptionsStore = derived( - [runtime, timeAndFilterStore, topNColorQuery, totalQuery], - ([$runtime, $timeAndFilterStore, $topNColorQuery, $totalQuery]) => { + [timeAndFilterStore, topNColorQuery, totalQuery], + ([$timeAndFilterStore, $topNColorQuery, $totalQuery]) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; const topNColorData = $topNColorQuery?.data?.data; const enabled = @@ -192,9 +191,9 @@ export class CircularChartProvider { this.combinedWhere.set(combinedWhere); const queryOptions = getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions, where: combinedWhere, diff --git a/web-common/src/features/components/charts/combo/ComboChartProvider.ts b/web-common/src/features/components/charts/combo/ComboChartProvider.ts index 6d2911c3497..6c33d25a3c8 100644 --- a/web-common/src/features/components/charts/combo/ComboChartProvider.ts +++ b/web-common/src/features/components/charts/combo/ComboChartProvider.ts @@ -9,14 +9,14 @@ import { import { mergeFilters } from "@rilldata/web-common/features/dashboards/pivot/pivot-merge-filters"; import { createInExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { TimeAndFilterStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import { - getQueryServiceMetricsViewAggregationQueryOptions, - type MetricsViewSpecMeasure, - type V1Expression, - type V1MetricsViewAggregationDimension, - type V1MetricsViewAggregationMeasure, +import type { + MetricsViewSpecMeasure, + V1Expression, + V1MetricsViewAggregationDimension, + V1MetricsViewAggregationMeasure, } from "@rilldata/web-common/runtime-client"; -import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import { getQueryServiceMetricsViewAggregationQueryOptions } from "@rilldata/web-common/runtime-client/v2/gen"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, keepPreviousData } from "@tanstack/svelte-query"; import { derived, @@ -81,7 +81,7 @@ export class ComboChartProvider { } createChartDataQuery( - runtime: Writable, + client: RuntimeClient, timeAndFilterStore: Readable, ): ChartDataQuery { const config = get(this.spec); @@ -100,10 +100,9 @@ export class ComboChartProvider { const dimensionName = config.x?.field; const xAxisQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; - const instanceId = $runtime.instanceId; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && !!dimensionName && @@ -129,9 +128,9 @@ export class ComboChartProvider { ); return getQueryServiceMetricsViewAggregationQueryOptions( - instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures: xAxisMeasures, dimensions: [{ name: dimensionName }], sort: xAxisSort ? [xAxisSort] : undefined, @@ -151,8 +150,8 @@ export class ComboChartProvider { const xAxisQuery = createQuery(xAxisQueryOptionsStore); const queryOptionsStore = derived( - [runtime, timeAndFilterStore, xAxisQuery], - ([$runtime, $timeAndFilterStore, $xAxisQuery]) => { + [timeAndFilterStore, xAxisQuery], + ([$timeAndFilterStore, $xAxisQuery]) => { const { timeRange, where, timeGrain, hasTimeSeries } = $timeAndFilterStore; const xTopNData = $xAxisQuery?.data?.data; @@ -204,9 +203,9 @@ export class ComboChartProvider { } return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions, where: combinedWhere, diff --git a/web-common/src/features/components/charts/funnel/FunnelChartProvider.ts b/web-common/src/features/components/charts/funnel/FunnelChartProvider.ts index 886255e99ba..c3af6900701 100644 --- a/web-common/src/features/components/charts/funnel/FunnelChartProvider.ts +++ b/web-common/src/features/components/charts/funnel/FunnelChartProvider.ts @@ -8,14 +8,14 @@ import { import { mergeFilters } from "@rilldata/web-common/features/dashboards/pivot/pivot-merge-filters"; import { createInExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { TimeAndFilterStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import { - getQueryServiceMetricsViewAggregationQueryOptions, - type V1Expression, - type V1MetricsViewAggregationDimension, - type V1MetricsViewAggregationMeasure, - type V1MetricsViewAggregationSort, +import type { + V1Expression, + V1MetricsViewAggregationDimension, + V1MetricsViewAggregationMeasure, + V1MetricsViewAggregationSort, } from "@rilldata/web-common/runtime-client"; -import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import { getQueryServiceMetricsViewAggregationQueryOptions } from "@rilldata/web-common/runtime-client/v2/gen"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, keepPreviousData } from "@tanstack/svelte-query"; import { derived, @@ -77,7 +77,7 @@ export class FunnelChartProvider { } createChartDataQuery( - runtime: Writable, + client: RuntimeClient, timeAndFilterStore: Readable, ): ChartDataQuery { const config = get(this.spec); @@ -121,10 +121,9 @@ export class FunnelChartProvider { // Create topN query for stage dimension const topNStageQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; - const instanceId = $runtime.instanceId; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && !!stageDimensionName && @@ -134,9 +133,9 @@ export class FunnelChartProvider { const topNWhere = getFilterWithNullHandling(where, config.stage); return getQueryServiceMetricsViewAggregationQueryOptions( - instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: [{ name: stageDimensionName }], sort: stageSort ? [stageSort] : undefined, @@ -156,8 +155,8 @@ export class FunnelChartProvider { const topNStageQuery = createQuery(topNStageQueryOptionsStore); const queryOptionsStore = derived( - [runtime, timeAndFilterStore, topNStageQuery], - ([$runtime, $timeAndFilterStore, $topNStageQuery]) => { + [timeAndFilterStore, topNStageQuery], + ([$timeAndFilterStore, $topNStageQuery]) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; const topNStageData = $topNStageQuery?.data?.data; const enabled = @@ -204,9 +203,9 @@ export class FunnelChartProvider { this.combinedWhere.set(combinedWhere); const queryOptions = getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions, where: combinedWhere, diff --git a/web-common/src/features/components/charts/heatmap/HeatmapChartProvider.ts b/web-common/src/features/components/charts/heatmap/HeatmapChartProvider.ts index 3801150579c..e7ff792b60b 100644 --- a/web-common/src/features/components/charts/heatmap/HeatmapChartProvider.ts +++ b/web-common/src/features/components/charts/heatmap/HeatmapChartProvider.ts @@ -9,13 +9,13 @@ import { import { mergeFilters } from "@rilldata/web-common/features/dashboards/pivot/pivot-merge-filters"; import { createInExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { TimeAndFilterStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import { - getQueryServiceMetricsViewAggregationQueryOptions, - type V1Expression, - type V1MetricsViewAggregationDimension, - type V1MetricsViewAggregationMeasure, +import type { + V1Expression, + V1MetricsViewAggregationDimension, + V1MetricsViewAggregationMeasure, } from "@rilldata/web-common/runtime-client"; -import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import { getQueryServiceMetricsViewAggregationQueryOptions } from "@rilldata/web-common/runtime-client/v2/gen"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, keepPreviousData } from "@tanstack/svelte-query"; import { derived, @@ -68,7 +68,7 @@ export class HeatmapChartProvider { } createChartDataQuery( - runtime: Writable, + client: RuntimeClient, timeAndFilterStore: Readable, ): ChartDataQuery { const config = get(this.spec); @@ -81,10 +81,9 @@ export class HeatmapChartProvider { // Create top level options store for X axis const xAxisQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; - const instanceId = $runtime.instanceId; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && !!config.x?.field && @@ -105,9 +104,9 @@ export class HeatmapChartProvider { ); return getQueryServiceMetricsViewAggregationQueryOptions( - instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: [{ name: config.x?.field }], sort: xAxisSort ? [xAxisSort] : undefined, @@ -126,8 +125,8 @@ export class HeatmapChartProvider { // Create top level options store for Y axis const yAxisQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where, hasTimeSeries } = $timeAndFilterStore; const enabled = (!hasTimeSeries || (!!timeRange?.start && !!timeRange?.end)) && @@ -149,9 +148,9 @@ export class HeatmapChartProvider { ); return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: [{ name: config.y?.field }], sort: yAxisSort ? [yAxisSort] : undefined, @@ -172,8 +171,8 @@ export class HeatmapChartProvider { const yAxisQuery = createQuery(yAxisQueryOptionsStore); const queryOptionsStore = derived( - [runtime, timeAndFilterStore, xAxisQuery, yAxisQuery], - ([$runtime, $timeAndFilterStore, $xAxisQuery, $yAxisQuery]) => { + [timeAndFilterStore, xAxisQuery, yAxisQuery], + ([$timeAndFilterStore, $xAxisQuery, $yAxisQuery]) => { const { timeRange, where, timeGrain, hasTimeSeries } = $timeAndFilterStore; const xTopNData = $xAxisQuery?.data?.data; @@ -253,9 +252,9 @@ export class HeatmapChartProvider { } return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions, sort: diff --git a/web-common/src/features/components/charts/scatter/ScatterPlotChartProvider.ts b/web-common/src/features/components/charts/scatter/ScatterPlotChartProvider.ts index ca39171b84f..ab83c281be0 100644 --- a/web-common/src/features/components/charts/scatter/ScatterPlotChartProvider.ts +++ b/web-common/src/features/components/charts/scatter/ScatterPlotChartProvider.ts @@ -8,13 +8,13 @@ import { isFieldConfig } from "@rilldata/web-common/features/components/charts/u import { mergeFilters } from "@rilldata/web-common/features/dashboards/pivot/pivot-merge-filters"; import { createInExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { TimeAndFilterStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import { - getQueryServiceMetricsViewAggregationQueryOptions, - type V1Expression, - type V1MetricsViewAggregationDimension, - type V1MetricsViewAggregationMeasure, +import type { + V1Expression, + V1MetricsViewAggregationDimension, + V1MetricsViewAggregationMeasure, } from "@rilldata/web-common/runtime-client"; -import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import { getQueryServiceMetricsViewAggregationQueryOptions } from "@rilldata/web-common/runtime-client/v2/gen"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, keepPreviousData } from "@tanstack/svelte-query"; import { derived, @@ -49,7 +49,7 @@ export class ScatterPlotChartProvider { } createChartDataQuery( - runtime: Writable, + client: RuntimeClient, timeAndFilterStore: Readable, ): ChartDataQuery { const config = get(this.spec); @@ -93,8 +93,8 @@ export class ScatterPlotChartProvider { } const topNColorQueryOptionsStore = derived( - [runtime, timeAndFilterStore], - ([$runtime, $timeAndFilterStore]) => { + timeAndFilterStore, + ($timeAndFilterStore) => { const { timeRange, where } = $timeAndFilterStore; const enabled = !!timeRange?.start && @@ -109,9 +109,9 @@ export class ScatterPlotChartProvider { ); return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: [{ name: colorDimensionName }], sort: config?.y?.field @@ -133,8 +133,8 @@ export class ScatterPlotChartProvider { const topNColorQuery = createQuery(topNColorQueryOptionsStore); const queryOptionsStore = derived( - [runtime, timeAndFilterStore, topNColorQuery], - ([$runtime, $timeAndFilterStore, $topNColorQuery]) => { + [timeAndFilterStore, topNColorQuery], + ([$timeAndFilterStore, $topNColorQuery]) => { const { timeRange, where, timeGrain } = $timeAndFilterStore; const topNColorData = $topNColorQuery?.data?.data; const enabled = @@ -182,9 +182,9 @@ export class ScatterPlotChartProvider { this.combinedWhere.set(combinedWhere); return getQueryServiceMetricsViewAggregationQueryOptions( - $runtime.instanceId, - config.metrics_view, + client, { + metricsView: config.metrics_view, measures, dimensions: finalDimensions, where: combinedWhere, diff --git a/web-common/src/features/components/charts/types.ts b/web-common/src/features/components/charts/types.ts index aee4e863111..c48db0d185e 100644 --- a/web-common/src/features/components/charts/types.ts +++ b/web-common/src/features/components/charts/types.ts @@ -24,7 +24,6 @@ import { type MetricsViewSpecMeasure, type V1MetricsViewAggregationResponseDataItem, } from "@rilldata/web-common/runtime-client"; -import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; import type { CreateQueryResult } from "@tanstack/svelte-query"; import type { Color } from "chroma-js"; import type { TimeUnit } from "vega-lite/build/src/timeunit"; @@ -88,7 +87,7 @@ export type ChartType = export type ChartDataQuery = CreateQueryResult< V1MetricsViewAggregationResponse, - HTTPError + Error >; export type ChartFieldsMap = Record< @@ -102,7 +101,7 @@ export type ChartDataResult = { data: V1MetricsViewAggregationResponseDataItem[]; isFetching: boolean; fields: ChartFieldsMap; - error?: HTTPError | null; + error?: Error | null; theme: { primary: Color; secondary: Color }; domainValues?: ChartDomainValues; isDarkMode: boolean; From 25a80d115703811a7a0faae3f0871ad4924458eb Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 17:04:50 +0300 Subject: [PATCH 17/27] refactor: add runtimeClient to dashboard StateManagers and migrate core stores to v2 Bridge pattern: adds runtimeClient alongside runtime in StateManagers. Migrates validSpecStore and timeRangeSummaryStore to v2 hooks, removing runtime from their derived() dependencies. --- .../StateManagersProvider.svelte | 4 ++ .../state-managers/selectors/index.ts | 7 +-- .../state-managers/state-managers.ts | 45 ++++++++++++------- .../dashboards/stores/test-data/helpers.ts | 6 +++ 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/web-common/src/features/dashboards/state-managers/StateManagersProvider.svelte b/web-common/src/features/dashboards/state-managers/StateManagersProvider.svelte index bf6f8ca789d..d446c88b0a4 100644 --- a/web-common/src/features/dashboards/state-managers/StateManagersProvider.svelte +++ b/web-common/src/features/dashboards/state-managers/StateManagersProvider.svelte @@ -3,16 +3,20 @@ import { createStateManagers, DEFAULT_STORE_KEY } from "./state-managers"; import { useExploreState } from "../stores/dashboard-stores"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export let metricsViewName: string | undefined; export let exploreName: string; export let visualEditing = false; + const client = useRuntimeClient(); + const stateManagers = metricsViewName ? createStateManagers({ queryClient, metricsViewName, exploreName, + runtimeClient: client, }) : undefined; diff --git a/web-common/src/features/dashboards/state-managers/selectors/index.ts b/web-common/src/features/dashboards/state-managers/selectors/index.ts index 684250e980f..719bb68492d 100644 --- a/web-common/src/features/dashboards/state-managers/selectors/index.ts +++ b/web-common/src/features/dashboards/state-managers/selectors/index.ts @@ -1,10 +1,7 @@ import { chartSelectors } from "@rilldata/web-common/features/dashboards/state-managers/selectors/charts"; import { measureFilterSelectors } from "@rilldata/web-common/features/dashboards/state-managers/selectors/measure-filters"; import type { ExploreValidSpecResponse } from "@rilldata/web-common/features/explores/selectors"; -import type { - RpcStatus, - V1MetricsViewTimeRangeResponse, -} from "@rilldata/web-common/runtime-client"; +import type { V1MetricsViewTimeRangeResponse } from "@rilldata/web-common/runtime-client"; import type { QueryClient, QueryObserverResult } from "@tanstack/svelte-query"; import { derived, type Readable } from "svelte/store"; import type { ExploreState } from "web-common/src/features/dashboards/stores/explore-state"; @@ -25,7 +22,7 @@ import { leaderboardSelectors } from "./leaderboard"; export type DashboardDataReadables = { dashboardStore: Readable; validSpecStore: Readable< - QueryObserverResult + QueryObserverResult >; timeRangeSummaryStore: Readable< QueryObserverResult diff --git a/web-common/src/features/dashboards/state-managers/state-managers.ts b/web-common/src/features/dashboards/state-managers/state-managers.ts index b88a58c21b8..b0115413619 100644 --- a/web-common/src/features/dashboards/state-managers/state-managers.ts +++ b/web-common/src/features/dashboards/state-managers/state-managers.ts @@ -1,17 +1,15 @@ import { type ExploreState } from "@rilldata/web-common/features/dashboards/stores/explore-state"; import { getDefaultExplorePreset } from "@rilldata/web-common/features/dashboards/url-state/getDefaultExplorePreset"; +import { type ExploreValidSpecResponse } from "@rilldata/web-common/features/explores/selectors"; import { - type ExploreValidSpecResponse, - useExploreValidSpec, -} from "@rilldata/web-common/features/explores/selectors"; -import { - type RpcStatus, type V1ExplorePreset, type V1MetricsViewTimeRangeResponse, - createQueryServiceMetricsViewTimeRange, } from "@rilldata/web-common/runtime-client"; import type { Runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; +import { createRuntimeServiceGetExplore } from "@rilldata/web-common/runtime-client/v2/gen/runtime-service"; +import { createQueryServiceMetricsViewTimeRange } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; import type { QueryClient, QueryObserverResult } from "@tanstack/svelte-query"; import { getContext } from "svelte"; import { @@ -40,6 +38,7 @@ import { export type StateManagers = { runtime: Writable; + runtimeClient: RuntimeClient; metricsViewName: Writable; exploreName: Writable; metricsStore: Readable; @@ -49,7 +48,7 @@ export type StateManagers = { QueryObserverResult >; validSpecStore: Readable< - QueryObserverResult + QueryObserverResult >; queryClient: QueryClient; updateDashboard: DashboardCallbackExecutor; @@ -81,10 +80,12 @@ export function createStateManagers({ queryClient, metricsViewName, exploreName, + runtimeClient, }: { queryClient: QueryClient; metricsViewName: string; exploreName: string; + runtimeClient: RuntimeClient; }): StateManagers { const metricsViewNameStore = writable(metricsViewName); const exploreNameStore = writable(exploreName); @@ -99,12 +100,21 @@ export function createStateManagers({ ); const validSpecStore: Readable< - QueryObserverResult - > = derived([runtime, exploreNameStore], ([r, exploreName], set) => - useExploreValidSpec( - r.instanceId, - exploreName, - undefined, + QueryObserverResult + > = derived([exploreNameStore], ([exploreName], set) => + createRuntimeServiceGetExplore( + runtimeClient, + { name: exploreName }, + { + query: { + select: (data) => + { + explore: data.explore?.explore?.state?.validSpec, + metricsView: data.metricsView?.metricsView?.state?.validSpec, + }, + enabled: !!exploreName, + }, + }, queryClient, ).subscribe(set), ); @@ -112,12 +122,12 @@ export function createStateManagers({ const timeRangeSummaryStore: Readable< QueryObserverResult > = derived( - [runtime, metricsViewNameStore, validSpecStore, dashboardStore], - ([runtime, mvName, validSpec, $dashboardStore], set) => + [metricsViewNameStore, validSpecStore, dashboardStore], + ([mvName, validSpec, $dashboardStore], set) => createQueryServiceMetricsViewTimeRange( - runtime.instanceId, - mvName, + runtimeClient, { + metricsViewName: mvName, timeDimension: $dashboardStore?.selectedTimeDimension, }, { @@ -158,6 +168,7 @@ export function createStateManagers({ return { runtime: runtime, + runtimeClient, metricsViewName: metricsViewNameStore, exploreName: exploreNameStore, metricsStore: metricsExplorerStore, diff --git a/web-common/src/features/dashboards/stores/test-data/helpers.ts b/web-common/src/features/dashboards/stores/test-data/helpers.ts index c1587dbf3fa..11d19973f58 100644 --- a/web-common/src/features/dashboards/stores/test-data/helpers.ts +++ b/web-common/src/features/dashboards/stores/test-data/helpers.ts @@ -1,5 +1,6 @@ import { QueryClient } from "@tanstack/svelte-query"; import { createStateManagers } from "@rilldata/web-common/features/dashboards/state-managers/state-managers"; +import { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { metricsExplorerStore } from "@rilldata/web-common/features/dashboards/stores/dashboard-stores"; import { createAndExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import type { ExploreState } from "@rilldata/web-common/features/dashboards/stores/explore-state"; @@ -120,10 +121,15 @@ export function initStateManagers(metricsViewName?: string) { }, }, }); + const runtimeClient = new RuntimeClient({ + host: "http://localhost", + instanceId: "test", + }); const stateManagers = createStateManagers({ queryClient, metricsViewName, exploreName, + runtimeClient, }); return { stateManagers, queryClient }; From 8392af2f2d9a1716c8877e526fb9842e35615ebc Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 17:04:57 +0300 Subject: [PATCH 18/27] refactor: migrate dashboard time-series and selector modules to v2 RuntimeClient Migrates 5 TS modules that receive StateManagers: timeseries-data-store, totals-data-store, multiple-dimension-queries, dimension-filters selector, and dashboard selectors. Removes ctx.runtime from derived() dependencies and switches to v2 query hooks. --- .../features/dashboards/selectors/index.ts | 20 +++++----- .../selectors/dimension-filters.ts | 6 +-- .../time-series/multiple-dimension-queries.ts | 27 +++++--------- .../time-series/timeseries-data-store.ts | 30 ++++++--------- .../time-series/totals-data-store.ts | 37 ++++++------------- 5 files changed, 45 insertions(+), 75 deletions(-) diff --git a/web-common/src/features/dashboards/selectors/index.ts b/web-common/src/features/dashboards/selectors/index.ts index dc434615b70..069a951ff98 100644 --- a/web-common/src/features/dashboards/selectors/index.ts +++ b/web-common/src/features/dashboards/selectors/index.ts @@ -1,22 +1,20 @@ -import { - type V1MetricsViewTimeRangeResponse, - createQueryServiceMetricsViewTimeRange, -} from "@rilldata/web-common/runtime-client"; +import type { V1MetricsViewTimeRangeResponse } from "@rilldata/web-common/runtime-client"; +import { createQueryServiceMetricsViewTimeRange } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; import type { CreateQueryResult } from "@tanstack/svelte-query"; import { derived } from "svelte/store"; import type { StateManagers } from "../state-managers/state-managers"; -import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; export function createTimeRangeSummary( ctx: StateManagers, -): CreateQueryResult { +): CreateQueryResult { return derived( - [ctx.runtime, ctx.metricsViewName, ctx.validSpecStore], - ([runtime, metricsViewName, validSpec], set) => + [ctx.metricsViewName, ctx.validSpecStore], + ([metricsViewName, validSpec], set) => createQueryServiceMetricsViewTimeRange( - runtime.instanceId, - metricsViewName, - {}, + ctx.runtimeClient, + { + metricsViewName, + }, { query: { enabled: diff --git a/web-common/src/features/dashboards/state-managers/selectors/dimension-filters.ts b/web-common/src/features/dashboards/state-managers/selectors/dimension-filters.ts index be2072fa79a..879434458e5 100644 --- a/web-common/src/features/dashboards/state-managers/selectors/dimension-filters.ts +++ b/web-common/src/features/dashboards/state-managers/selectors/dimension-filters.ts @@ -85,10 +85,10 @@ export const selectedDimensionValues = ( export const useSelectedValuesForCompareDimension = (ctx: StateManagers) => { return derived( - [ctx.runtime, ctx.metricsViewName, ctx.dashboardStore], - ([runtime, metricsViewName, exploreState], set) => + [ctx.metricsViewName, ctx.dashboardStore], + ([metricsViewName, exploreState], set) => selectedDimensionValues( - runtime.instanceId, + ctx.runtimeClient.instanceId, [metricsViewName], exploreState.whereFilter, exploreState.selectedComparisonDimension ?? "", diff --git a/web-common/src/features/dashboards/time-series/multiple-dimension-queries.ts b/web-common/src/features/dashboards/time-series/multiple-dimension-queries.ts index b3a534e9d96..3f62d9cd944 100644 --- a/web-common/src/features/dashboards/time-series/multiple-dimension-queries.ts +++ b/web-common/src/features/dashboards/time-series/multiple-dimension-queries.ts @@ -26,9 +26,8 @@ import { type V1MetricsViewAggregationResponse, V1TimeGrain, type V1TimeSeriesValue, - createQueryServiceMetricsViewAggregation, } from "@rilldata/web-common/runtime-client"; -import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; +import { createQueryServiceMetricsViewAggregation } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; import { type CreateQueryResult, keepPreviousData, @@ -77,13 +76,12 @@ export function getDimensionValuesForComparison( ): Readable { return derived( [ - ctx.runtime, ctx.metricsViewName, ctx.dashboardStore, useTimeControlStore(ctx), dimensionSearchText, ], - ([runtime, name, dashboardStore, timeControls, searchText], set) => { + ([name, dashboardStore, timeControls, searchText], set) => { const isValidMeasureList = measures?.length > 0 && measures?.every((m) => m !== undefined); @@ -99,7 +97,7 @@ export function getDimensionValuesForComparison( let comparisonValues: (string | null)[] = []; if (surface === "chart") { return selectedDimensionValues( - runtime.instanceId, + ctx.runtimeClient.instanceId, [name], dashboardStore?.whereFilter, dimensionName, @@ -126,9 +124,9 @@ export function getDimensionValuesForComparison( return derived( createQueryServiceMetricsViewAggregation( - runtime.instanceId, - name, + ctx.runtimeClient, { + metricsView: name, measures: measures.map((measure) => ({ name: measure })), dimensions: [{ name: dimensionName }], where: sanitiseExpression( @@ -234,15 +232,10 @@ function getAggregationQueryForTopList( measures: string[], dimensionValues: DimensionTopList, isTimeComparison: boolean = false, -): CreateQueryResult { +): CreateQueryResult { return derived( - [ - ctx.runtime, - ctx.metricsViewName, - ctx.dashboardStore, - useTimeControlStore(ctx), - ], - ([runtime, metricsViewName, dashboardStore, timeStore], set) => { + [ctx.metricsViewName, ctx.dashboardStore, useTimeControlStore(ctx)], + ([metricsViewName, dashboardStore, timeStore], set) => { const dimensionName = dashboardStore?.selectedComparisonDimension; const timeGrain = timeStore?.selectedTimeRange?.interval || V1TimeGrain.TIME_GRAIN_DAY; @@ -273,9 +266,9 @@ function getAggregationQueryForTopList( }; return createQueryServiceMetricsViewAggregation( - runtime.instanceId, - metricsViewName, + ctx.runtimeClient, { + metricsView: metricsViewName, measures: measures.map((measure) => ({ name: measure })), dimensions: [ { name: dimensionName }, diff --git a/web-common/src/features/dashboards/time-series/timeseries-data-store.ts b/web-common/src/features/dashboards/time-series/timeseries-data-store.ts index 46a3cbe8319..64a70342b07 100644 --- a/web-common/src/features/dashboards/time-series/timeseries-data-store.ts +++ b/web-common/src/features/dashboards/time-series/timeseries-data-store.ts @@ -13,9 +13,8 @@ import { type V1MetricsViewAggregationResponse, type V1MetricsViewAggregationResponseDataItem, type V1MetricsViewTimeSeriesResponse, - createQueryServiceMetricsViewTimeSeries, } from "@rilldata/web-common/runtime-client"; -import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; +import { createQueryServiceMetricsViewTimeSeries } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; import { keepPreviousData, type CreateQueryResult, @@ -55,21 +54,16 @@ export function createMetricsViewTimeSeries( ctx: StateManagers, measures: string[], isComparison = false, -): CreateQueryResult { +): CreateQueryResult { return derived( - [ - ctx.runtime, - ctx.metricsViewName, - ctx.dashboardStore, - useTimeControlStore(ctx), - ], - ([runtime, metricsViewName, dashboardStore, timeControls], set) => { + [ctx.metricsViewName, ctx.dashboardStore, useTimeControlStore(ctx)], + ([metricsViewName, dashboardStore, timeControls], set) => { const timeGrain = timeControls.selectedTimeRange?.interval; return createQueryServiceMetricsViewTimeSeries( - runtime.instanceId, - metricsViewName, + ctx.runtimeClient, { + metricsViewName, measureNames: measures, where: sanitiseExpression( mergeDimensionAndMeasureFilters( @@ -178,7 +172,7 @@ export function createTimeSeriesDataStore( }); let unfilteredTotals: - | CreateQueryResult + | CreateQueryResult | Writable = writable(null); if (dashboardStore?.selectedComparisonDimension) { @@ -189,10 +183,10 @@ export function createTimeSeriesDataStore( ); } let comparisonTimeSeries: - | CreateQueryResult + | CreateQueryResult | Writable = writable(null); let comparisonTotals: - | CreateQueryResult + | CreateQueryResult | Writable = writable(null); if (showComparison) { comparisonTimeSeries = createMetricsViewTimeSeries( @@ -248,13 +242,11 @@ export function createTimeSeriesDataStore( const error = {}; if (primary.error) { isError = true; - error["timeseries"] = ( - primary.error as HTTPError - ).response?.data?.message; + error["timeseries"] = (primary.error as Error).message; } if (primaryTotal.error) { isError = true; - error["totals"] = primaryTotal.error.response?.data?.message; + error["totals"] = (primaryTotal.error as Error).message; } const primaryIsFetching = primary.isFetching; const primaryTotalIsFetching = primaryTotal.isFetching; diff --git a/web-common/src/features/dashboards/time-series/totals-data-store.ts b/web-common/src/features/dashboards/time-series/totals-data-store.ts index be22d38801c..c447850f633 100644 --- a/web-common/src/features/dashboards/time-series/totals-data-store.ts +++ b/web-common/src/features/dashboards/time-series/totals-data-store.ts @@ -7,11 +7,8 @@ import { sanitiseExpression, } from "@rilldata/web-common/features/dashboards/stores/filter-utils"; import { useTimeControlStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; -import { - createQueryServiceMetricsViewAggregation, - type V1MetricsViewAggregationResponse, -} from "@rilldata/web-common/runtime-client"; -import { type HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; +import type { V1MetricsViewAggregationResponse } from "@rilldata/web-common/runtime-client"; +import { createQueryServiceMetricsViewAggregation } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; import type { CreateQueryResult } from "@tanstack/svelte-query"; import { derived } from "svelte/store"; @@ -19,19 +16,14 @@ export function createTotalsForMeasure( ctx: StateManagers, measures: string[], isComparison = false, -): CreateQueryResult { +): CreateQueryResult { return derived( - [ - ctx.runtime, - ctx.metricsViewName, - useTimeControlStore(ctx), - ctx.dashboardStore, - ], - ([runtime, metricsViewName, timeControls, dashboard], set) => + [ctx.metricsViewName, useTimeControlStore(ctx), ctx.dashboardStore], + ([metricsViewName, timeControls, dashboard], set) => createQueryServiceMetricsViewAggregation( - runtime.instanceId, - metricsViewName, + ctx.runtimeClient, { + metricsView: metricsViewName, measures: measures.map((measure) => ({ name: measure })), where: sanitiseExpression( mergeDimensionAndMeasureFilters( @@ -65,15 +57,10 @@ export function createUnfilteredTotalsForMeasure( ctx: StateManagers, measures: string[], dimensionName: string, -): CreateQueryResult { +): CreateQueryResult { return derived( - [ - ctx.runtime, - ctx.metricsViewName, - useTimeControlStore(ctx), - ctx.dashboardStore, - ], - ([runtime, metricsViewName, timeControls, dashboard], set) => { + [ctx.metricsViewName, useTimeControlStore(ctx), ctx.dashboardStore], + ([metricsViewName, timeControls, dashboard], set) => { const filter = sanitiseExpression( mergeDimensionAndMeasureFilters( dashboard.whereFilter, @@ -88,9 +75,9 @@ export function createUnfilteredTotalsForMeasure( ); createQueryServiceMetricsViewAggregation( - runtime.instanceId, - metricsViewName, + ctx.runtimeClient, { + metricsView: metricsViewName, measures: measures.map((measure) => ({ name: measure })), where: updatedFilter, timeRange: { From b65d646367e42a9e312a68c6b1a85d903ee59317 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 17:11:41 +0300 Subject: [PATCH 19/27] refactor: migrate dashboard Svelte components from runtime store to useRuntimeClient Replaces direct `runtime` store imports with `useRuntimeClient()` across 13 dashboard Svelte components. Uses stable `client.instanceId` instead of reactive `$runtime.instanceId`. --- .../dashboards/big-number/MeasuresContainer.svelte | 5 +++-- .../dimension-search/GlobalDimensionSearchResults.svelte | 5 +++-- .../dashboards/dimension-table/DimensionDisplay.svelte | 9 +++++---- .../src/features/dashboards/filters/Filters.svelte | 5 +++-- .../filters/dimension-filters/DimensionFilter.svelte | 5 +++-- .../dimension-filters/DimensionFilterReadOnlyChip.svelte | 5 +++-- .../granular-access-policies/ViewAsButton.svelte | 5 +++-- .../dashboards/leaderboard/LeaderboardDisplay.svelte | 9 +++++---- .../features/dashboards/rows-viewer/RowsViewer.svelte | 5 +++-- .../dashboards/rows-viewer/RowsViewerAccordion.svelte | 8 ++++---- .../state-managers/loaders/DashboardStateManager.svelte | 6 ++++-- .../time-series/MetricsTimeSeriesCharts.svelte | 5 +++-- .../src/features/dashboards/workspace/Dashboard.svelte | 5 +++-- 13 files changed, 45 insertions(+), 32 deletions(-) diff --git a/web-common/src/features/dashboards/big-number/MeasuresContainer.svelte b/web-common/src/features/dashboards/big-number/MeasuresContainer.svelte index 3243b08d5d0..f2fa4dd9a36 100644 --- a/web-common/src/features/dashboards/big-number/MeasuresContainer.svelte +++ b/web-common/src/features/dashboards/big-number/MeasuresContainer.svelte @@ -4,7 +4,7 @@ import { useTimeControlStore } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store"; import { EntityStatus } from "@rilldata/web-common/features/entity-management/types"; import { createQueryServiceMetricsViewAggregation } from "@rilldata/web-common/runtime-client"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { MEASURE_CONFIG } from "../config"; import MeasureBigNumber from "./MeasureBigNumber.svelte"; import DashboardVisibilityDropdown from "@rilldata/web-common/components/menu/DashboardVisibilityDropdown.svelte"; @@ -41,7 +41,8 @@ }, } = getStateManagers(); - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; const timeControlsStore = useTimeControlStore(getStateManagers()); diff --git a/web-common/src/features/dashboards/dimension-search/GlobalDimensionSearchResults.svelte b/web-common/src/features/dashboards/dimension-search/GlobalDimensionSearchResults.svelte index 21e7b59f6ba..89eaaee13be 100644 --- a/web-common/src/features/dashboards/dimension-search/GlobalDimensionSearchResults.svelte +++ b/web-common/src/features/dashboards/dimension-search/GlobalDimensionSearchResults.svelte @@ -6,7 +6,7 @@ useDimensionSearchResults, } from "@rilldata/web-common/features/dashboards/dimension-search/useDimensionSearchResults"; import { getStateManagers } from "@rilldata/web-common/features/dashboards/state-managers/state-managers"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { DropdownMenu, DropdownMenuContent, @@ -26,7 +26,8 @@ validSpecStore, } = getStateManagers(); - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; let results: ReturnType; $: if ( diff --git a/web-common/src/features/dashboards/dimension-table/DimensionDisplay.svelte b/web-common/src/features/dashboards/dimension-table/DimensionDisplay.svelte index 068a6809be3..d74150f4b86 100644 --- a/web-common/src/features/dashboards/dimension-table/DimensionDisplay.svelte +++ b/web-common/src/features/dashboards/dimension-table/DimensionDisplay.svelte @@ -16,7 +16,7 @@ type V1MetricsViewAggregationMeasure, type V1TimeRange, } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { getComparisonRequestMeasures } from "../dashboard-utils"; import { mergeDimensionAndMeasureFilters } from "../filters/measure-filters/measure-filter-utils"; import { getSort } from "../leaderboard/leaderboard-utils"; @@ -64,12 +64,13 @@ $: metricsViewSpec = $validSpecStore.data?.metricsView ?? {}; - $: ({ name: dimensionName = "" } = dimension); + const client = useRuntimeClient(); + const { instanceId } = client; - $: ({ instanceId } = $runtime); + $: ({ name: dimensionName = "" } = dimension); $: selectedValues = selectedDimensionValues( - $runtime.instanceId, + client.instanceId, [metricsViewName], $dashboardStore.whereFilter, dimensionName, diff --git a/web-common/src/features/dashboards/filters/Filters.svelte b/web-common/src/features/dashboards/filters/Filters.svelte index 349089f4129..3fb84ca90c9 100644 --- a/web-common/src/features/dashboards/filters/Filters.svelte +++ b/web-common/src/features/dashboards/filters/Filters.svelte @@ -48,7 +48,7 @@ import Metadata from "../time-controls/super-pill/components/Metadata.svelte"; import { getValidComparisonOption } from "../time-controls/time-range-store"; import { getPinnedTimeZones } from "../url-state/getDefaultExplorePreset"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; const { rillTime } = featureFlags; @@ -101,7 +101,8 @@ let showDefaultItem = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; $: timeRangeQuery = useMetricsViewTimeRange(instanceId, metricsViewName); diff --git a/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilter.svelte b/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilter.svelte index 95745a1a663..1f092429409 100644 --- a/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilter.svelte +++ b/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilter.svelte @@ -21,7 +21,7 @@ import DimensionFilterFooter from "@rilldata/web-common/features/dashboards/filters/dimension-filters/DimensionFilterFooter.svelte"; import DimensionFilterModeSelector from "@rilldata/web-common/features/dashboards/filters/dimension-filters/DimensionFilterModeSelector.svelte"; import type { V1Expression } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { fly } from "svelte/transition"; import { useAllSearchResultsCount, @@ -67,7 +67,8 @@ : []; let curPinned = filterData.pinned; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; $: ({ name, diff --git a/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilterReadOnlyChip.svelte b/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilterReadOnlyChip.svelte index b3c3751cf4f..22882de39af 100644 --- a/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilterReadOnlyChip.svelte +++ b/web-common/src/features/dashboards/filters/dimension-filters/DimensionFilterReadOnlyChip.svelte @@ -6,7 +6,7 @@ useDimensionSearch, } from "@rilldata/web-common/features/dashboards/filters/dimension-filters/dimension-filter-values"; import DimensionFilterChipBody from "@rilldata/web-common/features/dashboards/filters/dimension-filters/DimensionFilterChipBody.svelte"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export let name: string; export let metricsViewNames: string[]; @@ -19,7 +19,8 @@ export let timeEnd: string | undefined; export let pinned = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; $: effectiveLabel = isInclude ? label : `Exclude ${label}`; $: sanitisedSearchText = inputText?.replace(/^%/, "").replace(/%$/, ""); diff --git a/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte b/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte index fc50ec6e70e..eb18e2ecd33 100644 --- a/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte +++ b/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte @@ -8,7 +8,7 @@ import Check from "../../../components/icons/Check.svelte"; import EyeIcon from "../../../components/icons/EyeIcon.svelte"; import Spacer from "../../../components/icons/Spacer.svelte"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { selectedMockUserStore } from "./stores"; import { useMockUsers } from "./useMockUsers"; import * as DropdownMenu from "@rilldata/web-common/components/dropdown-menu"; @@ -18,7 +18,8 @@ let viewAsMenuOpen = false; let open = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; $: mockUsers = useMockUsers(instanceId); diff --git a/web-common/src/features/dashboards/leaderboard/LeaderboardDisplay.svelte b/web-common/src/features/dashboards/leaderboard/LeaderboardDisplay.svelte index 488c2bc9685..62f27dbb32a 100644 --- a/web-common/src/features/dashboards/leaderboard/LeaderboardDisplay.svelte +++ b/web-common/src/features/dashboards/leaderboard/LeaderboardDisplay.svelte @@ -5,7 +5,7 @@ V1Expression, V1TimeRange, } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import type { DimensionThresholdFilter } from "web-common/src/features/dashboards/stores/explore-state"; import Leaderboard from "./Leaderboard.svelte"; import LeaderboardControls from "./LeaderboardControls.svelte"; @@ -43,9 +43,10 @@ dashboardStore, } = StateManagers; - let parentElement: HTMLDivElement; + const client = useRuntimeClient(); + const { instanceId } = client; - $: ({ instanceId } = $runtime); + let parentElement: HTMLDivElement; // Reset column widths when the measure changes $: if ($leaderboardSortByMeasureName) { @@ -98,7 +99,7 @@ {parentElement} {timeControlsReady} selectedValues={selectedDimensionValues( - $runtime.instanceId, + client.instanceId, [metricsViewName], $dashboardStore.whereFilter, dimension.name, diff --git a/web-common/src/features/dashboards/rows-viewer/RowsViewer.svelte b/web-common/src/features/dashboards/rows-viewer/RowsViewer.svelte index 58e4113ad0f..3787fd3511b 100644 --- a/web-common/src/features/dashboards/rows-viewer/RowsViewer.svelte +++ b/web-common/src/features/dashboards/rows-viewer/RowsViewer.svelte @@ -7,7 +7,7 @@ createQueryServiceMetricsViewRows, type V1Expression, } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { writable } from "svelte/store"; import { useExploreState } from "web-common/src/features/dashboards/stores/dashboard-stores"; import { PreviewTable } from "../../../components/preview-table"; @@ -19,7 +19,8 @@ export let filters: V1Expression | undefined; export let timeRange: TimeRangeString; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; const SAMPLE_SIZE = 10000; const FALLBACK_SAMPLE_SIZE = 1000; diff --git a/web-common/src/features/dashboards/rows-viewer/RowsViewerAccordion.svelte b/web-common/src/features/dashboards/rows-viewer/RowsViewerAccordion.svelte index da6a5e427db..87150ff1f75 100644 --- a/web-common/src/features/dashboards/rows-viewer/RowsViewerAccordion.svelte +++ b/web-common/src/features/dashboards/rows-viewer/RowsViewerAccordion.svelte @@ -7,8 +7,7 @@ import Resizer from "@rilldata/web-common/layout/Resizer.svelte"; import { formatCompactInteger } from "@rilldata/web-common/lib/formatters"; import { createQueryServiceMetricsViewAggregation } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; - import { get } from "svelte/store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { useExploreState } from "web-common/src/features/dashboards/stores/dashboard-stores"; import ExportMenu from "../../exports/ExportMenu.svelte"; import { featureFlags } from "../../feature-flags"; @@ -42,7 +41,8 @@ }, } = stateManagers; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; $: exploreState = useExploreState(exploreName); $: ({ whereFilter, dimensionThresholdFilters } = $exploreState); @@ -131,7 +131,7 @@ function getExportQuery() { return { metricsViewRowsRequest: { - instanceId: get(runtime).instanceId, + instanceId: client.instanceId, metricsViewName, timeStart: timeRange.start, timeEnd: timeRange.end, diff --git a/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.svelte b/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.svelte index eb8a1daf600..e14d178c360 100644 --- a/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.svelte +++ b/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.svelte @@ -16,7 +16,7 @@ import { useExploreValidSpec } from "@rilldata/web-common/features/explores/selectors"; import { eventBus } from "@rilldata/web-common/lib/event-bus/event-bus"; import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { onDestroy } from "svelte"; export let exploreName: string; @@ -26,7 +26,9 @@ | undefined = undefined; export let disableMostRecentDashboardState: boolean = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; + $: exploreSpecQuery = useExploreValidSpec(instanceId, exploreName); $: exploreSpec = $exploreSpecQuery.data?.explore ?? {}; $: metricsViewName = exploreSpec?.metricsView ?? ""; diff --git a/web-common/src/features/dashboards/time-series/MetricsTimeSeriesCharts.svelte b/web-common/src/features/dashboards/time-series/MetricsTimeSeriesCharts.svelte index dd1e0457b23..7ea077047e7 100644 --- a/web-common/src/features/dashboards/time-series/MetricsTimeSeriesCharts.svelte +++ b/web-common/src/features/dashboards/time-series/MetricsTimeSeriesCharts.svelte @@ -40,7 +40,7 @@ type AvailableTimeGrain, } from "@rilldata/web-common/lib/time/types"; import { type MetricsViewSpecMeasure } from "@rilldata/web-common/runtime-client/gen/index.schemas"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { DateTime } from "luxon"; import { Button } from "../../../components/button"; import Pivot from "../../../components/icons/Pivot.svelte"; @@ -95,7 +95,8 @@ } = $timeControlsStore); $: activeTimeGrain = selectedTimeRange?.interval; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; let scrubStart; let scrubEnd; diff --git a/web-common/src/features/dashboards/workspace/Dashboard.svelte b/web-common/src/features/dashboards/workspace/Dashboard.svelte index 32bde3d3b31..347ba0aad2f 100644 --- a/web-common/src/features/dashboards/workspace/Dashboard.svelte +++ b/web-common/src/features/dashboards/workspace/Dashboard.svelte @@ -12,7 +12,7 @@ import { readable, type Readable } from "svelte/store"; import { useExploreState } from "web-common/src/features/dashboards/stores/dashboard-stores"; import { DashboardState_ActivePage } from "../../../proto/gen/rill/ui/v1/dashboard_pb"; - import { runtime } from "../../../runtime-client/runtime-store"; + import { useRuntimeClient } from "../../../runtime-client/v2"; import { activeDashboardTheme } from "../../themes/active-dashboard-theme"; import { createResolvedThemeStore } from "../../themes/selectors"; import MeasuresContainer from "../big-number/MeasuresContainer.svelte"; @@ -52,7 +52,8 @@ let metricsWidth = DEFAULT_TIMESERIES_WIDTH; let resizing = false; - $: ({ instanceId } = $runtime); + const client = useRuntimeClient(); + const { instanceId } = client; $: ({ whereFilter, dimensionThresholdFilters, selectedTimeDimension } = $dashboardStore); From e7bc93b804c1a74bc4b57c36a6ad3205c30ccc01 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 17:49:03 +0300 Subject: [PATCH 20/27] fix: update test infrastructure for v2 ConnectRPC hooks - Add ConnectRPC URL routing to `DashboardFetchMocks` (handles `/rill.runtime.v1.{Service}/{Method}` requests with proper body decoding and RFC 3339 timestamp normalization) - Inject `RuntimeClient` context in test renders that mount components calling `useRuntimeClient()` --- .../dashboards/dashboard-fetch-mocks.ts | 79 ++++++++++++++++++- .../filters/test/render-filter-component.ts | 10 ++- .../loaders/DashboardStateManager.spec.ts | 12 ++- .../loaders/explore-web-view-store.spec.ts | 12 ++- .../most-recent-explore-state.spec.ts | 12 ++- 5 files changed, 119 insertions(+), 6 deletions(-) diff --git a/web-common/src/features/dashboards/dashboard-fetch-mocks.ts b/web-common/src/features/dashboards/dashboard-fetch-mocks.ts index 95d4dc1bc53..e5e63c90c9b 100644 --- a/web-common/src/features/dashboards/dashboard-fetch-mocks.ts +++ b/web-common/src/features/dashboards/dashboard-fetch-mocks.ts @@ -123,8 +123,17 @@ export class DashboardFetchMocks { ); } - private async fetchMock(url: string, body: string | undefined) { + private async fetchMock(url: string, body: string | Uint8Array | undefined) { const u = new URL(url); + + // ConnectRPC routes: POST to /rill.runtime.v1.{Service}/{Method} + const connectMatch = u.pathname.match( + /^\/rill\.runtime\.v1\.(\w+)\/(\w+)$/, + ); + if (connectMatch) { + return this.handleConnectRequest(connectMatch[1], connectMatch[2], body); + } + const [, , , , type, ...parts] = u.pathname.split("/"); let key: string; @@ -162,8 +171,9 @@ export class DashboardFetchMocks { ok: true, json: () => { if (body && parts[2] === "aggregation") { + const bodyText = typeof body === "string" ? body : ""; for (const { regex, response } of this.aggregationRequestMocks) { - if (!regex.test(body)) continue; + if (!regex.test(bodyText)) continue; return response; } } @@ -172,4 +182,69 @@ export class DashboardFetchMocks { headers: new Map([["content-type", "application/json"]]), }; } + + private async handleConnectRequest( + service: string, + method: string, + body: string | Uint8Array | undefined, + ) { + await asyncWait(1); + + // ConnectRPC may send body as Uint8Array or other typed array + let bodyStr: string; + if (typeof body === "string") { + bodyStr = body; + } else if (body && typeof body === "object") { + bodyStr = new TextDecoder().decode(body as ArrayBufferView); + } else { + bodyStr = ""; + } + const parsed = bodyStr ? JSON.parse(bodyStr) : {}; + let responseData: unknown; + + if (service === "RuntimeService" && method === "GetExplore") { + responseData = this.responses.get(`resources__explore__${parsed.name}`); + } else if ( + service === "QueryService" && + method === "MetricsViewTimeRange" + ) { + const stored = this.responses.get( + `queries__metrics-views__time-range-summary__${parsed.metricsViewName}`, + ); + if (stored?.timeRangeSummary) { + // Convert short dates to RFC 3339 for proto Timestamp compatibility + const s = stored.timeRangeSummary; + responseData = { + timeRangeSummary: { + ...s, + min: s.min && !s.min.includes("T") ? s.min + "T00:00:00Z" : s.min, + max: s.max && !s.max.includes("T") ? s.max + "T00:00:00Z" : s.max, + }, + }; + } else { + responseData = stored; + } + } else if ( + service === "QueryService" && + method === "MetricsViewAggregation" + ) { + for (const { regex, response } of this.aggregationRequestMocks) { + if (regex.test(bodyStr)) { + responseData = response; + break; + } + } + } + + // ConnectRPC expects status, ok, headers (Headers), json(), arrayBuffer() + const jsonBody = responseData ?? {}; + return { + status: 200, + ok: true, + headers: new Headers({ "content-type": "application/json" }), + json: async () => jsonBody, + arrayBuffer: async () => + new TextEncoder().encode(JSON.stringify(jsonBody)).buffer, + }; + } } diff --git a/web-common/src/features/dashboards/filters/test/render-filter-component.ts b/web-common/src/features/dashboards/filters/test/render-filter-component.ts index 04eb383c890..afec7c2c3fc 100644 --- a/web-common/src/features/dashboards/filters/test/render-filter-component.ts +++ b/web-common/src/features/dashboards/filters/test/render-filter-component.ts @@ -2,6 +2,10 @@ import Filters from "@rilldata/web-common/features/dashboards/filters/Filters.sv import { DEFAULT_STORE_KEY } from "@rilldata/web-common/features/dashboards/state-managers/state-managers"; import { AD_BIDS_METRICS_NAME } from "@rilldata/web-common/features/dashboards/stores/test-data/data"; import { initStateManagers } from "@rilldata/web-common/features/dashboards/stores/test-data/helpers"; +import { + RUNTIME_CONTEXT_KEY, + RuntimeClient, +} from "@rilldata/web-common/runtime-client/v2"; import { render } from "@testing-library/svelte"; export function renderFilterComponent(hasTimeSeries = false) { @@ -13,9 +17,13 @@ export function renderFilterComponent(hasTimeSeries = false) { metricsViewName: AD_BIDS_METRICS_NAME, hasTimeSeries, }, - context: new Map([ + context: new Map([ [DEFAULT_STORE_KEY as unknown as string, stateManagers as unknown], ["$$_queryClient", queryClient as unknown], + [ + RUNTIME_CONTEXT_KEY, + new RuntimeClient({ host: "http://localhost", instanceId: "test" }), + ], ]), }); diff --git a/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.spec.ts b/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.spec.ts index 88daa28dc92..244f7df0be9 100644 --- a/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.spec.ts +++ b/web-common/src/features/dashboards/state-managers/loaders/DashboardStateManager.spec.ts @@ -40,6 +40,10 @@ import { V1ExploreComparisonMode, V1TimeGrain, } from "@rilldata/web-common/runtime-client"; +import { + RUNTIME_CONTEXT_KEY, + RuntimeClient, +} from "@rilldata/web-common/runtime-client/v2"; import { render, screen, waitFor } from "@testing-library/svelte"; import { readable } from "svelte/store"; import { beforeEach, describe, expect, it, vi } from "vitest"; @@ -485,7 +489,13 @@ function renderDashboardStateManager( }, // TODO: we need to make sure every single query uses an explicit queryClient instead of the global one // only then we can use a fresh client here. - context: new Map([["$$_queryClient", queryClient]]), + context: new Map([ + ["$$_queryClient", queryClient], + [ + RUNTIME_CONTEXT_KEY, + new RuntimeClient({ host: "http://localhost", instanceId: "test" }), + ], + ]), }); return { queryClient, renderResults }; diff --git a/web-common/src/features/dashboards/state-managers/loaders/explore-web-view-store.spec.ts b/web-common/src/features/dashboards/state-managers/loaders/explore-web-view-store.spec.ts index 39a125ac3a3..48b1a7f678f 100644 --- a/web-common/src/features/dashboards/state-managers/loaders/explore-web-view-store.spec.ts +++ b/web-common/src/features/dashboards/state-managers/loaders/explore-web-view-store.spec.ts @@ -30,6 +30,10 @@ import { import DashboardStateManagerTest from "@rilldata/web-common/features/dashboards/state-managers/loaders/test/DashboardStateManagerTest.svelte"; import { getCleanMetricsExploreForAssertion } from "@rilldata/web-common/features/dashboards/url-state/url-state-variations.spec"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; +import { + RUNTIME_CONTEXT_KEY, + RuntimeClient, +} from "@rilldata/web-common/runtime-client/v2"; import { render, screen, waitFor } from "@testing-library/svelte"; import { beforeEach, describe, expect, it, vi } from "vitest"; @@ -252,7 +256,13 @@ function renderDashboardStateManager() { }, // TODO: we need to make sure every single query uses an explicit queryClient instead of the global one // only then we can use a fresh client here. - context: new Map([["$$_queryClient", queryClient]]), + context: new Map([ + ["$$_queryClient", queryClient], + [ + RUNTIME_CONTEXT_KEY, + new RuntimeClient({ host: "http://localhost", instanceId: "test" }), + ], + ]), }); return { queryClient, renderResults }; diff --git a/web-common/src/features/dashboards/state-managers/most-recent-explore-state.spec.ts b/web-common/src/features/dashboards/state-managers/most-recent-explore-state.spec.ts index e4397b5f93d..bb7a6432511 100644 --- a/web-common/src/features/dashboards/state-managers/most-recent-explore-state.spec.ts +++ b/web-common/src/features/dashboards/state-managers/most-recent-explore-state.spec.ts @@ -31,6 +31,10 @@ import { DashboardState_LeaderboardSortDirection, DashboardState_LeaderboardSortType, } from "@rilldata/web-common/proto/gen/rill/ui/v1/dashboard_pb"; +import { + RUNTIME_CONTEXT_KEY, + RuntimeClient, +} from "@rilldata/web-common/runtime-client/v2"; import { render, screen, waitFor } from "@testing-library/svelte"; import { beforeEach, describe, expect, it, vi } from "vitest"; @@ -179,7 +183,13 @@ function renderDashboardStateManager() { }, // TODO: we need to make sure every single query uses an explicit queryClient instead of the global one // only then we can use a fresh client here. - context: new Map([["$$_queryClient", queryClient]]), + context: new Map([ + ["$$_queryClient", queryClient], + [ + RUNTIME_CONTEXT_KEY, + new RuntimeClient({ host: "http://localhost", instanceId: "test" }), + ], + ]), }); return { queryClient, renderResults }; From 2267e4d03585e4fbb77459486206b0c919064fce Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 18:03:04 +0300 Subject: [PATCH 21/27] refactor: migrate export and pivot-query modules from runtime store to v2 RuntimeClient Replace `get(runtime).instanceId` with explicit `instanceId` parameters in tdd-export, pivot-export, and dimension-table-export. Switch pivot-queries from Orval hook to v2 `createQueryServiceMetricsViewAggregation`, threading `runtimeClient` through `PivotDashboardContext`. --- .../aggregation-request-builder.spec.ts | 3 + .../dimension-table/dimension-table-export.ts | 6 +- .../dashboards/pivot/pivot-data-store.ts | 1 + .../features/dashboards/pivot/pivot-export.ts | 6 +- .../dashboards/pivot/pivot-queries.ts | 67 +++++++++---------- .../src/features/dashboards/pivot/types.ts | 2 + .../time-dimension-details/tdd-export.ts | 6 +- 7 files changed, 50 insertions(+), 41 deletions(-) diff --git a/web-common/src/features/dashboards/aggregation-request-builder.spec.ts b/web-common/src/features/dashboards/aggregation-request-builder.spec.ts index bd634aa8ef1..f1e0fe35295 100644 --- a/web-common/src/features/dashboards/aggregation-request-builder.spec.ts +++ b/web-common/src/features/dashboards/aggregation-request-builder.spec.ts @@ -211,6 +211,7 @@ describe("Report rows and columns", () => { it(testCase.title, async () => { await runTest(testCase, (exploreState, timeControlState) => getDimensionTableAggregationRequestForTime({ + instanceId: "", metricsViewName: AD_BIDS_METRICS_NAME, exploreState, timeRange: { @@ -369,6 +370,7 @@ describe("Report rows and columns", () => { testCase, (exploreState, timeControlState) => getTDDAggregationRequest({ + instanceId: "", metricsViewName: AD_BIDS_METRICS_NAME, exploreState, timeControlState, @@ -504,6 +506,7 @@ describe("Report rows and columns", () => { testCase, (exploreState, timeControlState) => getPivotAggregationRequest({ + instanceId: "", metricsViewName: AD_BIDS_METRICS_NAME, timeDimension: AD_BIDS_METRICS_3_MEASURES_DIMENSIONS_WITH_TIME.timeDimension!, diff --git a/web-common/src/features/dashboards/dimension-table/dimension-table-export.ts b/web-common/src/features/dashboards/dimension-table/dimension-table-export.ts index 5a08a66f914..2f0bed2b820 100644 --- a/web-common/src/features/dashboards/dimension-table/dimension-table-export.ts +++ b/web-common/src/features/dashboards/dimension-table/dimension-table-export.ts @@ -18,7 +18,6 @@ import type { V1Query, V1TimeRange, } from "@rilldata/web-common/runtime-client"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { get } from "svelte/store"; import { buildWhereParamForDimensionTableAndTDDExports } from "../../exports/export-filters"; import { dimensionSearchText as dimensionSearchTextStore } from "../stores/dashboard-stores"; @@ -69,6 +68,7 @@ export function getDimensionTableExportQuery( const query: V1Query = { metricsViewAggregationRequest: getDimensionTableAggregationRequestForTime({ + instanceId: ctx.runtimeClient.instanceId, metricsViewName, exploreState, timeRange, @@ -81,12 +81,14 @@ export function getDimensionTableExportQuery( } export function getDimensionTableAggregationRequestForTime({ + instanceId, metricsViewName, exploreState, timeRange, comparisonTimeRange, dimensionSearchText, }: { + instanceId: string; metricsViewName: string; exploreState: ExploreState; timeRange: V1TimeRange; @@ -128,7 +130,7 @@ export function getDimensionTableAggregationRequestForTime({ ); return { - instanceId: get(runtime).instanceId, + instanceId, metricsView: metricsViewName, dimensions: [ { diff --git a/web-common/src/features/dashboards/pivot/pivot-data-store.ts b/web-common/src/features/dashboards/pivot/pivot-data-store.ts index 142f293fbac..e2a68c27113 100644 --- a/web-common/src/features/dashboards/pivot/pivot-data-store.ts +++ b/web-common/src/features/dashboards/pivot/pivot-data-store.ts @@ -724,6 +724,7 @@ export const usePivotForExplore = memoizeMetricsStore( (ctx: StateManagers) => { const pivotConfig = getPivotConfig(ctx); const pivotDashboardContext: PivotDashboardContext = { + runtimeClient: ctx.runtimeClient, metricsViewName: ctx.metricsViewName, queryClient: ctx.queryClient, enabled: !!ctx.dashboardStore, diff --git a/web-common/src/features/dashboards/pivot/pivot-export.ts b/web-common/src/features/dashboards/pivot/pivot-export.ts index b34e9aba28c..fb10e427b0a 100644 --- a/web-common/src/features/dashboards/pivot/pivot-export.ts +++ b/web-common/src/features/dashboards/pivot/pivot-export.ts @@ -12,7 +12,6 @@ import { type V1TimeRange, } from "@rilldata/web-common/runtime-client"; import { get } from "svelte/store"; -import { runtime } from "../../../runtime-client/runtime-store"; import type { StateManagers } from "../state-managers/state-managers"; import { getPivotConfig } from "./pivot-data-config"; import { prepareMeasureForComparison } from "./pivot-utils"; @@ -62,6 +61,7 @@ export function getPivotExportQuery(ctx: StateManagers, isScheduled: boolean) { const query: V1Query = { metricsViewAggregationRequest: getPivotAggregationRequest({ + instanceId: ctx.runtimeClient.instanceId, metricsViewName, timeDimension: exploreState.selectedTimeDimension || @@ -82,6 +82,7 @@ export function getPivotExportQuery(ctx: StateManagers, isScheduled: boolean) { } export function getPivotAggregationRequest({ + instanceId, metricsViewName, timeDimension, exploreState, @@ -93,6 +94,7 @@ export function getPivotAggregationRequest({ isFlat, pivotState, }: { + instanceId: string; metricsViewName: string; timeDimension: string; exploreState: ExploreState; @@ -179,7 +181,7 @@ export function getPivotAggregationRequest({ } return { - instanceId: get(runtime).instanceId, + instanceId, metricsView: metricsViewName, timeRange, comparisonTimeRange: comparisonTime, diff --git a/web-common/src/features/dashboards/pivot/pivot-queries.ts b/web-common/src/features/dashboards/pivot/pivot-queries.ts index 8d53d410431..6bc0105970c 100644 --- a/web-common/src/features/dashboards/pivot/pivot-queries.ts +++ b/web-common/src/features/dashboards/pivot/pivot-queries.ts @@ -11,10 +11,9 @@ import { type V1MetricsViewAggregationResponse, type V1MetricsViewAggregationResponseDataItem, type V1MetricsViewAggregationSort, - createQueryServiceMetricsViewAggregation, } from "@rilldata/web-common/runtime-client"; import type { HTTPError } from "@rilldata/web-common/runtime-client/fetchWrapper"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import { createQueryServiceMetricsViewAggregation } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; import { type CreateQueryResult, keepPreviousData, @@ -72,41 +71,39 @@ export function createPivotAggregationRowQuery( hasComparison = true; } - return derived( - [runtime, ctx.metricsViewName], - ([$runtime, metricsViewName], set) => - createQueryServiceMetricsViewAggregation( - $runtime.instanceId, - metricsViewName, - { - measures: prepareMeasureForComparison(measures), - dimensions, - where: sanitiseExpression(whereFilter, undefined), - timeRange: { - start: timeRange?.start ? timeRange.start : config.time.timeStart, - end: timeRange?.end ? timeRange.end : config.time.timeEnd, - timeDimension: config.time.timeDimension, - }, - comparisonTimeRange: - hasComparison && comparisonTime - ? { - start: comparisonTime.start, - end: comparisonTime.end, - timeDimension: config.time.timeDimension, - } - : undefined, - sort, - limit, - offset, + return derived([ctx.metricsViewName], ([metricsViewName], set) => + createQueryServiceMetricsViewAggregation( + ctx.runtimeClient, + { + metricsView: metricsViewName, + measures: prepareMeasureForComparison(measures), + dimensions, + where: sanitiseExpression(whereFilter, undefined), + timeRange: { + start: timeRange?.start ? timeRange.start : config.time.timeStart, + end: timeRange?.end ? timeRange.end : config.time.timeEnd, + timeDimension: config.time.timeDimension, }, - { - query: { - enabled: ctx.enabled, - placeholderData: keepPreviousData, - }, + comparisonTimeRange: + hasComparison && comparisonTime + ? { + start: comparisonTime.start, + end: comparisonTime.end, + timeDimension: config.time.timeDimension, + } + : undefined, + sort, + limit, + offset, + }, + { + query: { + enabled: ctx.enabled, + placeholderData: keepPreviousData, }, - ctx.queryClient, - ).subscribe(set), + }, + ctx.queryClient, + ).subscribe(set), ); } diff --git a/web-common/src/features/dashboards/pivot/types.ts b/web-common/src/features/dashboards/pivot/types.ts index 2e619a2ef69..1766f624c09 100644 --- a/web-common/src/features/dashboards/pivot/types.ts +++ b/web-common/src/features/dashboards/pivot/types.ts @@ -6,6 +6,7 @@ import type { V1MetricsViewAggregationResponseDataItem, V1TimeGrain, } from "@rilldata/web-common/runtime-client"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import type { QueryClient } from "@tanstack/svelte-query"; import type { ColumnDef, @@ -40,6 +41,7 @@ export interface PivotCell { } export interface PivotDashboardContext { + runtimeClient: RuntimeClient; metricsViewName: Readable; queryClient: QueryClient; enabled: boolean; diff --git a/web-common/src/features/dashboards/time-dimension-details/tdd-export.ts b/web-common/src/features/dashboards/time-dimension-details/tdd-export.ts index 3152cfb04f8..0a3404497ba 100644 --- a/web-common/src/features/dashboards/time-dimension-details/tdd-export.ts +++ b/web-common/src/features/dashboards/time-dimension-details/tdd-export.ts @@ -14,7 +14,6 @@ import type { V1Query, V1TimeRange, } from "@rilldata/web-common/runtime-client"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { get } from "svelte/store"; import { buildWhereParamForDimensionTableAndTDDExports } from "../../exports/export-filters"; import { dimensionSearchText as dimensionSearchTextStore } from "../stores/dashboard-stores"; @@ -31,6 +30,7 @@ export function getTDDExportQuery( const query: V1Query = { metricsViewAggregationRequest: getTDDAggregationRequest({ + instanceId: ctx.runtimeClient.instanceId, metricsViewName, exploreState, timeControlState, @@ -45,6 +45,7 @@ export function getTDDExportQuery( } export function getTDDAggregationRequest({ + instanceId, metricsViewName, exploreState, timeControlState, @@ -53,6 +54,7 @@ export function getTDDAggregationRequest({ dimensionSearchText, isScheduled, }: { + instanceId: string; metricsViewName: string; exploreState: ExploreState; timeControlState: TimeControlState; @@ -94,7 +96,7 @@ export function getTDDAggregationRequest({ exploreState.selectedTimeDimension || metricsViewSpec.timeDimension || ""; return { - instanceId: get(runtime).instanceId, + instanceId, metricsView: metricsViewName, dimensions: [ { name: dimensionName }, From d4e0b175f3154b189487e6a3872d54b5267b7f04 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 24 Feb 2026 18:28:08 +0300 Subject: [PATCH 22/27] refactor: migrate time controls and time ranges from runtime store to explicit instanceId Add `instanceId` parameter to `deriveInterval()` and `resolveTimeRanges()` instead of reading from the global `runtime` store. Thread `instanceId` through callers: DashboardStateSync, Filters, FiltersForm, canvas TimeState, and explore-mappers utils. --- .../alerts/data-tab/AlertDialogDataTab.svelte | 2 +- .../src/features/canvas/stores/time-state.ts | 7 +++- .../dashboards/filters/Filters.svelte | 2 ++ .../loaders/DashboardStateSync.ts | 4 ++- .../time-controls/new-time-controls.ts | 32 ++++++++++++++----- .../time-controls/rill-time-ranges.ts | 4 +-- .../src/features/explore-mappers/utils.ts | 1 + .../BaseScheduledReportForm.svelte | 2 +- .../scheduled-reports/FiltersForm.svelte | 2 ++ 9 files changed, 41 insertions(+), 15 deletions(-) diff --git a/web-common/src/features/alerts/data-tab/AlertDialogDataTab.svelte b/web-common/src/features/alerts/data-tab/AlertDialogDataTab.svelte index 8e7e72e1ff3..ff6794730e7 100644 --- a/web-common/src/features/alerts/data-tab/AlertDialogDataTab.svelte +++ b/web-common/src/features/alerts/data-tab/AlertDialogDataTab.svelte @@ -51,7 +51,7 @@
- + { - return deriveInterval(range, mvName, timeZone); + return deriveInterval( + range, + this.parent.instanceId, + mvName, + timeZone, + ); }); Promise.all(promises) diff --git a/web-common/src/features/dashboards/filters/Filters.svelte b/web-common/src/features/dashboards/filters/Filters.svelte index 3fb84ca90c9..45abbfcb8c6 100644 --- a/web-common/src/features/dashboards/filters/Filters.svelte +++ b/web-common/src/features/dashboards/filters/Filters.svelte @@ -235,6 +235,7 @@ const { interval, grain } = await deriveInterval( timeRangeName, + instanceId, metricsViewName, activeTimeZone, column, @@ -297,6 +298,7 @@ const { interval, grain } = await deriveInterval( alias, + instanceId, metricsViewName, tz, selectedTimeDimension, diff --git a/web-common/src/features/dashboards/state-managers/loaders/DashboardStateSync.ts b/web-common/src/features/dashboards/state-managers/loaders/DashboardStateSync.ts index 9937c619c7e..6a1184b4d74 100644 --- a/web-common/src/features/dashboards/state-managers/loaders/DashboardStateSync.ts +++ b/web-common/src/features/dashboards/state-managers/loaders/DashboardStateSync.ts @@ -51,7 +51,7 @@ export class DashboardStateSync { } public constructor( - instanceId: string, + private readonly instanceId: string, metricsViewName: string, private readonly exploreName: string, private readonly extraPrefix: string | undefined, @@ -150,6 +150,7 @@ export class DashboardStateSync { initExploreState.selectedTimeRange, // initExploreState.selectedComparisonTimeRange, ] = await resolveTimeRanges( + this.instanceId, exploreSpec, [ initExploreState.selectedTimeRange, @@ -245,6 +246,7 @@ export class DashboardStateSync { partialExplore.selectedTimeRange, // partialExplore.selectedComparisonTimeRange, ] = await resolveTimeRanges( + this.instanceId, exploreSpec, [ partialExplore.selectedTimeRange, diff --git a/web-common/src/features/dashboards/time-controls/new-time-controls.ts b/web-common/src/features/dashboards/time-controls/new-time-controls.ts index c13883bdd1e..a07b420820c 100644 --- a/web-common/src/features/dashboards/time-controls/new-time-controls.ts +++ b/web-common/src/features/dashboards/time-controls/new-time-controls.ts @@ -165,9 +165,16 @@ class MetricsTimeControls { private _subrange = new IntervalStore(); private _comparisonRange = new IntervalStore(); private _showComparison: Writable = writable(false); + private _instanceId: string; private _metricsViewName: string; - constructor(maxStart: DateTime, maxEnd: DateTime, metricsViewName: string) { + constructor( + maxStart: DateTime, + maxEnd: DateTime, + instanceId: string, + metricsViewName: string, + ) { + this._instanceId = instanceId; this._metricsViewName = metricsViewName; const maxInterval = Interval.fromDateTimes( maxStart.setZone("UTC"), @@ -188,7 +195,7 @@ class MetricsTimeControls { if (rightAnchor) { const interval = await deriveInterval( iso, - + this._instanceId, this._metricsViewName, get(this._zone).name, ); @@ -204,7 +211,7 @@ class MetricsTimeControls { if (rightAnchor) { const interval = await deriveInterval( name, - + this._instanceId, this._metricsViewName, get(this._zone).name, ); @@ -284,11 +291,21 @@ class MetricsTimeControls { class TimeControls { private _timeControls = new Map(); - get(metricsViewName: string, maxStart?: DateTime, maxEnd?: DateTime) { + get( + metricsViewName: string, + instanceId?: string, + maxStart?: DateTime, + maxEnd?: DateTime, + ) { let store = this._timeControls.get(metricsViewName); - if (!store && maxStart && maxEnd) { - store = new MetricsTimeControls(maxStart, maxEnd, metricsViewName); + if (!store && maxStart && maxEnd && instanceId) { + store = new MetricsTimeControls( + maxStart, + maxEnd, + instanceId, + metricsViewName, + ); this._timeControls.set(metricsViewName, store); } else if (!store) { throw new Error("TimeControls.get() called without maxStart and maxEnd"); @@ -312,7 +329,6 @@ export function isRillPeriodToDate(value: string): value is RillPeriodToDate { return RILL_PERIOD_TO_DATE.includes(value as RillPeriodToDate); } -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { getAllowedGrains, GrainAliasToV1TimeGrain, @@ -331,6 +347,7 @@ import { getDefaultRangeBuckets } from "@rilldata/web-common/lib/time/defaults"; export async function deriveInterval( name: RillPeriodToDate | RillPreviousPeriod | ISODurationString | string, + instanceId: string, metricsViewName: string, activeTimeZone: string, timeDimension?: string, @@ -352,7 +369,6 @@ export async function deriveInterval( const parsed = parseRillTime(name); // We have a RillTime string - const instanceId = get(runtime).instanceId; const cacheBust = name.includes("now"); const response = await fetchTimeRanges({ diff --git a/web-common/src/features/dashboards/time-controls/rill-time-ranges.ts b/web-common/src/features/dashboards/time-controls/rill-time-ranges.ts index fe867c28821..a2446e11ec4 100644 --- a/web-common/src/features/dashboards/time-controls/rill-time-ranges.ts +++ b/web-common/src/features/dashboards/time-controls/rill-time-ranges.ts @@ -1,7 +1,5 @@ import { validateRillTime } from "@rilldata/web-common/features/dashboards/url-state/time-ranges/parser"; import type { DashboardTimeControls } from "@rilldata/web-common/lib/time/types"; -import { get } from "svelte/store"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { getQueryServiceMetricsViewTimeRangesQueryKey, queryServiceMetricsViewTimeRanges, @@ -10,6 +8,7 @@ import { import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; export async function resolveTimeRanges( + instanceId: string, exploreSpec: V1ExploreSpec, timeRanges: (DashboardTimeControls | undefined)[], timeZone: string | undefined, @@ -40,7 +39,6 @@ export async function resolveTimeRanges( if (rillTimes.length === 0) return timeRangesToReturn; - const instanceId = get(runtime).instanceId; const metricsViewName = exploreSpec.metricsView!; try { diff --git a/web-common/src/features/explore-mappers/utils.ts b/web-common/src/features/explore-mappers/utils.ts index d40bd5f389c..69ce1e57001 100644 --- a/web-common/src/features/explore-mappers/utils.ts +++ b/web-common/src/features/explore-mappers/utils.ts @@ -102,6 +102,7 @@ export async function fillTimeRange( // Resolve time range overriding ref to `executionTime` and set to custom. // This keeps the time range consistent regardless of when the link is opened. [exploreState.selectedTimeRange] = await resolveTimeRanges( + get(runtime).instanceId, exploreSpec, [exploreState.selectedTimeRange], exploreState.selectedTimezone, diff --git a/web-common/src/features/scheduled-reports/BaseScheduledReportForm.svelte b/web-common/src/features/scheduled-reports/BaseScheduledReportForm.svelte index 76520ff58bf..ffa2612d7c1 100644 --- a/web-common/src/features/scheduled-reports/BaseScheduledReportForm.svelte +++ b/web-common/src/features/scheduled-reports/BaseScheduledReportForm.svelte @@ -126,7 +126,7 @@
- +
Date: Tue, 24 Feb 2026 19:19:11 +0300 Subject: [PATCH 23/27] refactor: migrate canvas, explores, and state-managers from runtime store to v2 RuntimeClient - Remove unused `runtime` property from dashboard and canvas StateManagers - Delete dead code: `getValidDashboardsQueryOptions` and `getMetricsViewSchemaOptions` - Migrate 10 canvas Svelte components to `useRuntimeClient()` - Migrate canvas markdown `util.ts` to accept explicit `instanceId` parameter - Migrate 2 explores Svelte components to `useRuntimeClient()` --- .../src/features/canvas/CanvasBuilder.svelte | 6 ++- .../canvas/CanvasDashboardEmbed.svelte | 6 ++- .../src/features/canvas/CanvasEditor.svelte | 6 ++- .../components/charts/CanvasChart.svelte | 6 ++- .../leaderboard/LeaderboardDisplay.svelte | 6 ++- .../components/markdown/Markdown.svelte | 8 +++- .../canvas/components/markdown/util.ts | 5 +-- .../canvas/filters/CanvasFilters.svelte | 6 ++- .../inspector/DefaultFilterDisplay.svelte | 6 ++- .../inspector/VisualCanvasEditing.svelte | 6 ++- .../filters/DimensionFiltersInput.svelte | 6 ++- .../inspector/filters/TimeFiltersInput.svelte | 6 ++- .../canvas/state-managers/state-managers.ts | 5 --- .../src/features/dashboards/selectors.ts | 45 ------------------- .../state-managers/state-managers.ts | 4 -- .../features/explores/ExploreMenuItems.svelte | 10 +++-- .../explores/ExplorePreviewCTAs.svelte | 5 ++- 17 files changed, 57 insertions(+), 85 deletions(-) diff --git a/web-common/src/features/canvas/CanvasBuilder.svelte b/web-common/src/features/canvas/CanvasBuilder.svelte index a121bf6a4b1..c3f57950eb3 100644 --- a/web-common/src/features/canvas/CanvasBuilder.svelte +++ b/web-common/src/features/canvas/CanvasBuilder.svelte @@ -6,7 +6,7 @@ type V1CanvasRow, type V1Resource, } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { onDestroy } from "svelte"; import { get, writable } from "svelte/store"; import { parseDocument } from "yaml"; @@ -40,6 +40,8 @@ export let canvasName: string; export let openSidebar: () => void; + const runtimeClient = useRuntimeClient(); + let initialMousePosition: { x: number; y: number } | null = null; let clientWidth: number; let offset = { x: 0, y: 0 }; @@ -66,7 +68,7 @@ $: layoutRows = $_rows; - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); $: components = $componentsStore; diff --git a/web-common/src/features/canvas/CanvasDashboardEmbed.svelte b/web-common/src/features/canvas/CanvasDashboardEmbed.svelte index db4fcf52060..386e63c04a2 100644 --- a/web-common/src/features/canvas/CanvasDashboardEmbed.svelte +++ b/web-common/src/features/canvas/CanvasDashboardEmbed.svelte @@ -2,7 +2,7 @@ import CanvasDashboardWrapper from "./CanvasDashboardWrapper.svelte"; import { getCanvasStore } from "./state-managers/state-managers"; import StaticCanvasRow from "./StaticCanvasRow.svelte"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import Spinner from "../entity-management/Spinner.svelte"; import { EntityStatus } from "../entity-management/types"; import { derived } from "svelte/store"; @@ -14,7 +14,9 @@ export let canvasName: string; export let navigationEnabled: boolean = true; - $: ({ instanceId } = $runtime); + const runtimeClient = useRuntimeClient(); + + $: ({ instanceId } = runtimeClient); $: ({ canvasEntity: { diff --git a/web-common/src/features/canvas/CanvasEditor.svelte b/web-common/src/features/canvas/CanvasEditor.svelte index 5f1f7855aee..3eaa5dc2665 100644 --- a/web-common/src/features/canvas/CanvasEditor.svelte +++ b/web-common/src/features/canvas/CanvasEditor.svelte @@ -7,18 +7,20 @@ import { mapParseErrorToLine } from "@rilldata/web-common/features/metrics-views/errors"; import { removeCanvasStore } from "./state-managers/state-managers"; import type { V1ParseError } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export let canvasName: string; export let fileArtifact: FileArtifact; export let autoSave: boolean; export let parseError: V1ParseError | undefined = undefined; + const runtimeClient = useRuntimeClient(); + $: ({ remoteContent } = fileArtifact); let editor: EditorView; - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); /** If the parse error changes, update the editor gutter. */ $: lineStatus = mapParseErrorToLine(parseError, $remoteContent ?? ""); diff --git a/web-common/src/features/canvas/components/charts/CanvasChart.svelte b/web-common/src/features/canvas/components/charts/CanvasChart.svelte index 549db57e3b1..4230d82a4bf 100644 --- a/web-common/src/features/canvas/components/charts/CanvasChart.svelte +++ b/web-common/src/features/canvas/components/charts/CanvasChart.svelte @@ -6,7 +6,7 @@ import Spinner from "@rilldata/web-common/features/entity-management/Spinner.svelte"; import { EntityStatus } from "@rilldata/web-common/features/entity-management/types"; import { themeControl } from "@rilldata/web-common/features/themes/theme-control"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { derived } from "svelte/store"; import type { CanvasChartSpec } from "."; import type { BaseChart } from "./BaseChart"; @@ -15,13 +15,15 @@ export let component: BaseChart; + const runtimeClient = useRuntimeClient(); + // Theme mode (light/dark) - separate from which theme is selected $: isThemeModeDark = derived( themeControl, ($themeControl) => $themeControl === "dark", ); - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); $: ({ specStore, diff --git a/web-common/src/features/canvas/components/leaderboard/LeaderboardDisplay.svelte b/web-common/src/features/canvas/components/leaderboard/LeaderboardDisplay.svelte index d95d2180d09..df27c0b7e65 100644 --- a/web-common/src/features/canvas/components/leaderboard/LeaderboardDisplay.svelte +++ b/web-common/src/features/canvas/components/leaderboard/LeaderboardDisplay.svelte @@ -13,7 +13,7 @@ import { selectedDimensionValues } from "@rilldata/web-common/features/dashboards/state-managers/selectors/dimension-filters"; import { createMeasureValueFormatter } from "@rilldata/web-common/lib/number-formatting/format-measure-value"; import type { MetricsViewSpecMeasure } from "@rilldata/web-common/runtime-client"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import ComponentHeader from "../../ComponentHeader.svelte"; import { getDimensionColumnWidth, @@ -23,13 +23,15 @@ export let component: LeaderboardComponent; + const runtimeClient = useRuntimeClient(); + let metricsViewName: string; let leaderboardMeasureNames: string[] = []; let dimensionNames: string[] = []; let numRows = 7; let leaderboardWrapperWidth = 0; - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); $: ({ specStore, diff --git a/web-common/src/features/canvas/components/markdown/Markdown.svelte b/web-common/src/features/canvas/components/markdown/Markdown.svelte index 3745a8e41d2..595e1e43e35 100644 --- a/web-common/src/features/canvas/components/markdown/Markdown.svelte +++ b/web-common/src/features/canvas/components/markdown/Markdown.svelte @@ -3,6 +3,7 @@ import { marked } from "marked"; import { createQuery } from "@tanstack/svelte-query"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import type { MarkdownCanvasComponent } from "./"; import { getPositionClasses, @@ -13,6 +14,8 @@ export let component: MarkdownCanvasComponent; + const runtimeClient = useRuntimeClient(); + $: specStore = component?.specStore; $: spec = specStore ? $specStore : undefined; $: content = spec?.content ?? ""; @@ -25,7 +28,10 @@ ? ($parentSpecStore?.data?.metricsViews ?? {}) : {}; - const queryOptionsStore = getResolveTemplatedStringQueryOptions(component); + const queryOptionsStore = getResolveTemplatedStringQueryOptions( + component, + runtimeClient.instanceId, + ); $: resolveQuery = createQuery(queryOptionsStore, queryClient); // Store the last successfully resolved content to prevent flashing during refetches diff --git a/web-common/src/features/canvas/components/markdown/util.ts b/web-common/src/features/canvas/components/markdown/util.ts index b3d234d6747..4c9c130a21d 100644 --- a/web-common/src/features/canvas/components/markdown/util.ts +++ b/web-common/src/features/canvas/components/markdown/util.ts @@ -10,7 +10,6 @@ import type { QueryServiceResolveTemplatedStringBody, } from "@rilldata/web-common/runtime-client"; import { getQueryServiceResolveTemplatedStringQueryOptions } from "@rilldata/web-common/runtime-client"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { derived } from "svelte/store"; import type { ParsedFilters } from "../../stores/filter-state"; import type { Readable } from "svelte/motion"; @@ -128,6 +127,7 @@ function buildRequestBody(params: { export function getResolveTemplatedStringQueryOptions( component: MarkdownCanvasComponent, + instanceId: string, ): Readable< ReturnType > { @@ -139,7 +139,6 @@ export function getResolveTemplatedStringQueryOptions( component.specStore, component.timeAndFilterStore, component.parent?.specStore ?? null, - runtime, component.parent.timeManager.hasTimeSeriesStore, ...Array.from(metricsViewFilters.values()).map((f) => f.parsed), ], @@ -147,14 +146,12 @@ export function getResolveTemplatedStringQueryOptions( spec, timeAndFilters, parentSpec, - runtimeState, hasTimeSeries, ...parsedMetricsViewFilters ]) => { const content = spec?.content ?? ""; const applyFormatting = spec?.apply_formatting === true; const needsTemplating = hasTemplatingSyntax(content); - const instanceId = runtimeState?.instanceId ?? ""; const metricsViews = parentSpec?.data?.metricsViews ?? {}; diff --git a/web-common/src/features/canvas/filters/CanvasFilters.svelte b/web-common/src/features/canvas/filters/CanvasFilters.svelte index c1633b7bc96..1145513b714 100644 --- a/web-common/src/features/canvas/filters/CanvasFilters.svelte +++ b/web-common/src/features/canvas/filters/CanvasFilters.svelte @@ -8,7 +8,7 @@ import MeasureFilter from "@rilldata/web-common/features/dashboards/filters/measure-filters/MeasureFilter.svelte"; import { getPanRangeForTimeRange } from "@rilldata/web-common/features/dashboards/state-managers/selectors/charts"; import SuperPill from "@rilldata/web-common/features/dashboards/time-controls/super-pill/SuperPill.svelte"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import CanvasComparisonPill from "./CanvasComparisonPill.svelte"; import CanvasFilterButton from "../../dashboards/filters/CanvasFilterButton.svelte"; import { Tooltip } from "bits-ui"; @@ -19,12 +19,14 @@ export let builder = false; export let canvasName: string; + const runtimeClient = useRuntimeClient(); + /** the height of a row of chips */ const ROW_HEIGHT = "26px"; let showDefaultItem = false; - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); $: ({ canvasEntity: { filterManager: { diff --git a/web-common/src/features/canvas/inspector/DefaultFilterDisplay.svelte b/web-common/src/features/canvas/inspector/DefaultFilterDisplay.svelte index 2962d0001dd..edae0c35984 100644 --- a/web-common/src/features/canvas/inspector/DefaultFilterDisplay.svelte +++ b/web-common/src/features/canvas/inspector/DefaultFilterDisplay.svelte @@ -1,5 +1,5 @@ diff --git a/web-common/src/features/chat/core/context/InlineContext.svelte b/web-common/src/features/chat/core/context/InlineContext.svelte index cb5b61e45ca..73c8f68ea62 100644 --- a/web-common/src/features/chat/core/context/InlineContext.svelte +++ b/web-common/src/features/chat/core/context/InlineContext.svelte @@ -6,6 +6,7 @@ import { type InlineContext } from "@rilldata/web-common/features/chat/core/context/inline-context.ts"; import InlineContextPicker from "@rilldata/web-common/features/chat/core/context/picker/InlineContextPicker.svelte"; import { InlineContextConfig } from "@rilldata/web-common/features/chat/core/context/config.ts"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; type InlineContextReadonlyProps = { mode: "readonly"; @@ -25,7 +26,8 @@ let open = false; let tooltipOpen = false; - const contextMetadataStore = getInlineChatContextMetadata(); + const runtimeClient = useRuntimeClient(); + const contextMetadataStore = getInlineChatContextMetadata(runtimeClient); $: typeConfig = selectedChatContext.type ? InlineContextConfig[selectedChatContext.type] diff --git a/web-common/src/features/chat/core/context/metadata.ts b/web-common/src/features/chat/core/context/metadata.ts index 65d5261bc6b..329a51cd234 100644 --- a/web-common/src/features/chat/core/context/metadata.ts +++ b/web-common/src/features/chat/core/context/metadata.ts @@ -1,7 +1,7 @@ import { createQuery } from "@tanstack/svelte-query"; import { getValidMetricsViewsQueryOptions } from "@rilldata/web-common/features/dashboards/selectors.ts"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient.ts"; -import { derived, get, type Readable } from "svelte/store"; +import { derived, type Readable } from "svelte/store"; import { createQueryServiceResolveCanvas, type MetricsViewSpecDimension, @@ -14,7 +14,7 @@ import { getClientFilteredResourcesQueryOptions, ResourceKind, } from "@rilldata/web-common/features/entity-management/resource-selectors.ts"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; /** * Metadata used to map a value to a label. @@ -34,9 +34,11 @@ export type MetricsViewMetadata = { * Creates a store that contains a map of metrics view names to their metadata. * Each metrics view metadata has a reference to its spec, and a map of for measure and dimension spec by their names. */ -export function getInlineChatContextMetadata(): Readable { +export function getInlineChatContextMetadata( + client: RuntimeClient, +): Readable { const metricsViewsQuery = createQuery( - getValidMetricsViewsQueryOptions(), + getValidMetricsViewsQueryOptions(client), queryClient, ); @@ -47,7 +49,7 @@ export function getInlineChatContextMetadata(): Readable queryClient, ); - const instanceId = get(runtime).instanceId; + const instanceId = client.instanceId; return derived( [metricsViewsQuery, canvasResourcesQuery], diff --git a/web-common/src/features/chat/core/context/picker/ExpandableOption.svelte b/web-common/src/features/chat/core/context/picker/ExpandableOption.svelte index cb95a5d6a49..2c47b08ce1c 100644 --- a/web-common/src/features/chat/core/context/picker/ExpandableOption.svelte +++ b/web-common/src/features/chat/core/context/picker/ExpandableOption.svelte @@ -15,6 +15,7 @@ import DelayedSpinner from "@rilldata/web-common/features/entity-management/DelayedSpinner.svelte"; import SimpleOption from "@rilldata/web-common/features/chat/core/context/picker/SimpleOption.svelte"; import { getInlineChatContextMetadata } from "@rilldata/web-common/features/chat/core/context/metadata.ts"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export let node: PickerTreeNode; export let selectedChatContext: InlineContext | null; @@ -27,9 +28,11 @@ const item = node.item; const context = item.context; + const runtimeClient = useRuntimeClient(); + const typeConfig = InlineContextConfig[context.type]; const typeLabel = typeConfig.typeLabel; - const contextMetadataStore = getInlineChatContextMetadata(); + const contextMetadataStore = getInlineChatContextMetadata(runtimeClient); $: icon = typeConfig?.getIcon?.(context, $contextMetadataStore); const selectedItemId = selectedChatContext ? getIdForContext(selectedChatContext) diff --git a/web-common/src/features/chat/core/context/picker/InlineContextPicker.svelte b/web-common/src/features/chat/core/context/picker/InlineContextPicker.svelte index 248d8f44027..4319a37280e 100644 --- a/web-common/src/features/chat/core/context/picker/InlineContextPicker.svelte +++ b/web-common/src/features/chat/core/context/picker/InlineContextPicker.svelte @@ -21,6 +21,7 @@ import { KeyboardNavigationManager } from "@rilldata/web-common/features/chat/core/context/picker/keyboard-navigation.ts"; import ExpandableOption from "@rilldata/web-common/features/chat/core/context/picker/ExpandableOption.svelte"; import SimpleOption from "@rilldata/web-common/features/chat/core/context/picker/SimpleOption.svelte"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export let selectedChatContext: InlineContext | null = null; export let searchText: string = ""; @@ -32,12 +33,18 @@ ? getIdForContext(selectedChatContext) : null; + const runtimeClient = useRuntimeClient(); + const searchTextStore = writable(""); $: searchTextStore.set(searchText.replace(/^@/, "")); const uiState = new ContextPickerUIState(); const expandedParentsStore = uiState.expandedParentsStore; - const filteredOptions = getFilteredPickerItems(uiState, searchTextStore); + const filteredOptions = getFilteredPickerItems( + runtimeClient, + uiState, + searchTextStore, + ); $: pickerTree = buildPickerTree($filteredOptions); const keyboardNavigationManager = new KeyboardNavigationManager(uiState); diff --git a/web-common/src/features/chat/core/context/picker/SimpleOption.svelte b/web-common/src/features/chat/core/context/picker/SimpleOption.svelte index a4bc78d4c4b..c025dd479a7 100644 --- a/web-common/src/features/chat/core/context/picker/SimpleOption.svelte +++ b/web-common/src/features/chat/core/context/picker/SimpleOption.svelte @@ -8,14 +8,17 @@ import { CheckIcon } from "lucide-svelte"; import type { PickerItem } from "@rilldata/web-common/features/chat/core/context/picker/picker-tree.ts"; import { getInlineChatContextMetadata } from "@rilldata/web-common/features/chat/core/context/metadata.ts"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export let item: PickerItem; export let selectedChatContext: InlineContext | null; export let keyboardNavigationManager: KeyboardNavigationManager; export let onSelect: (ctx: InlineContext) => void; + const runtimeClient = useRuntimeClient(); + const typeConfig = InlineContextConfig[item.context.type]; - const contextMetadataStore = getInlineChatContextMetadata(); + const contextMetadataStore = getInlineChatContextMetadata(runtimeClient); $: icon = typeConfig?.getIcon?.(item.context, $contextMetadataStore); const selectedItemId = selectedChatContext ? getIdForContext(selectedChatContext) diff --git a/web-common/src/features/chat/core/context/picker/data/index.ts b/web-common/src/features/chat/core/context/picker/data/index.ts index e4ef37500a2..c67f5a4c903 100644 --- a/web-common/src/features/chat/core/context/picker/data/index.ts +++ b/web-common/src/features/chat/core/context/picker/data/index.ts @@ -7,6 +7,7 @@ import type { PickerItem } from "@rilldata/web-common/features/chat/core/context import { getCanvasesPickerOptions } from "@rilldata/web-common/features/chat/core/context/picker/data/canvases.ts"; import { getInlineChatContextMetadata } from "@rilldata/web-common/features/chat/core/context/metadata.ts"; import { InlineContextConfig } from "@rilldata/web-common/features/chat/core/context/config.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; /** * Creates a store that contains a list of options for each valid metrics view, canvases and sources/models. @@ -17,14 +18,15 @@ import { InlineContextConfig } from "@rilldata/web-common/features/chat/core/con * The list contains parents immediately followed by their children. */ export function getPickerOptions( + client: RuntimeClient, uiState: ContextPickerUIState, ): Readable { const isRillDev = !get(featureFlags.adminServer); return derived( [ - getInlineChatContextMetadata(), - getMetricsViewPickerOptions(), + getInlineChatContextMetadata(client), + getMetricsViewPickerOptions(client), getCanvasesPickerOptions(uiState), isRillDev ? getModelsPickerOptions(uiState) : readable(null), uiState.expandedParentsStore, diff --git a/web-common/src/features/chat/core/context/picker/data/metrics-views.ts b/web-common/src/features/chat/core/context/picker/data/metrics-views.ts index d8d5f58d89a..4f46b44e7dd 100644 --- a/web-common/src/features/chat/core/context/picker/data/metrics-views.ts +++ b/web-common/src/features/chat/core/context/picker/data/metrics-views.ts @@ -1,6 +1,7 @@ import { getActiveMetricsViewNameStore } from "@rilldata/web-common/features/dashboards/nav-utils.ts"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient.ts"; import { getValidMetricsViewsQueryOptions } from "@rilldata/web-common/features/dashboards/selectors.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { derived, type Readable } from "svelte/store"; import { createQuery } from "@tanstack/svelte-query"; import { @@ -17,14 +18,16 @@ import { getLatestConversationQueryOptions } from "@rilldata/web-common/features * 1st level: metrics view context options * 2nd level: measures and dimensions options for each metrics view */ -export function getMetricsViewPickerOptions(): Readable { +export function getMetricsViewPickerOptions( + client: RuntimeClient, +): Readable { const metricsViewsQuery = createQuery( - getValidMetricsViewsQueryOptions(), + getValidMetricsViewsQueryOptions(client), queryClient, ); const lastUsedMetricsViewStore = getLastUsedMetricsViewNameStore(); - const activeMetricsViewStore = getActiveMetricsViewNameStore(); + const activeMetricsViewStore = getActiveMetricsViewNameStore(client); return derived( [metricsViewsQuery, lastUsedMetricsViewStore, activeMetricsViewStore], diff --git a/web-common/src/features/chat/core/context/picker/filters.ts b/web-common/src/features/chat/core/context/picker/filters.ts index 18e34c57af0..299811a2388 100644 --- a/web-common/src/features/chat/core/context/picker/filters.ts +++ b/web-common/src/features/chat/core/context/picker/filters.ts @@ -2,6 +2,7 @@ import { ContextPickerUIState } from "@rilldata/web-common/features/chat/core/co import { derived, type Readable } from "svelte/store"; import { getPickerOptions } from "@rilldata/web-common/features/chat/core/context/picker/data"; import type { PickerItem } from "@rilldata/web-common/features/chat/core/context/picker/picker-tree.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; /** * Creates a store that contains a list of options that match the search text. @@ -10,11 +11,16 @@ import type { PickerItem } from "@rilldata/web-common/features/chat/core/context * 3. If any child options are present, retains the parent option as well. */ export function getFilteredPickerItems( + client: RuntimeClient, uiState: ContextPickerUIState, searchTextStore: Readable, ) { return derived( - [getPickerOptions(uiState), searchTextStore, uiState.expandedParentsStore], + [ + getPickerOptions(client, uiState), + searchTextStore, + uiState.expandedParentsStore, + ], ([options, searchText, expandedParents]) => { const filterFunction = (label: string, value: string) => searchText.length === 0 || diff --git a/web-common/src/features/dashboards/chat-context.ts b/web-common/src/features/dashboards/chat-context.ts index d63d436ce7c..bba6ad8b1bb 100644 --- a/web-common/src/features/dashboards/chat-context.ts +++ b/web-common/src/features/dashboards/chat-context.ts @@ -10,31 +10,35 @@ import type { RuntimeServiceCompleteBody, V1AnalystAgentContext, } from "@rilldata/web-common/runtime-client"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { derived, type Readable } from "svelte/store"; -const activeExploreContextStore = getActiveExploreContext(); - -export const dashboardChatConfig = { - agent: ToolName.ANALYST_AGENT, - additionalContextStoreGetter: () => activeExploreContextStore, // TODO: add canvas context as well - emptyChatLabel: "Happy to help explore your data", - placeholder: - "Type a question, or press @ to insert a metric, dimension, or measure.", - minChatHeight: "min-h-[4rem]", -} satisfies ChatConfig; +export function createDashboardChatConfig(client: RuntimeClient): ChatConfig { + const activeExploreContextStore = getActiveExploreContext(client); + return { + agent: ToolName.ANALYST_AGENT, + additionalContextStoreGetter: () => activeExploreContextStore, + emptyChatLabel: "Happy to help explore your data", + placeholder: + "Type a question, or press @ to insert a metric, dimension, or measure.", + minChatHeight: "min-h-[4rem]", + }; +} /** * Creates a store that contains the active explore context sent to the Complete API. * It returns RuntimeServiceCompleteBody with V1AnalystAgentContext that is passed to the API. */ -function getActiveExploreContext(): Readable< - Partial -> { +function getActiveExploreContext( + client: RuntimeClient, +): Readable> { const exploreNameStore = getExploreNameStore(); const exploreState = useStableExploreState(exploreNameStore); - const timeControlsStore = - createStableTimeControlStoreFromName(exploreNameStore); + const timeControlsStore = createStableTimeControlStoreFromName( + client, + exploreNameStore, + ); return derived( [exploreNameStore, exploreState, timeControlsStore], diff --git a/web-common/src/features/dashboards/nav-utils.ts b/web-common/src/features/dashboards/nav-utils.ts index 1fa05aa7775..c19aea7ff8c 100644 --- a/web-common/src/features/dashboards/nav-utils.ts +++ b/web-common/src/features/dashboards/nav-utils.ts @@ -3,6 +3,7 @@ import { ResourceKind } from "@rilldata/web-common/features/entity-management/re import type { Page } from "@sveltejs/kit"; import { derived } from "svelte/store"; import { getExploreValidSpecQueryOptions } from "@rilldata/web-common/features/explores/selectors.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery } from "@tanstack/svelte-query"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient.ts"; @@ -53,10 +54,10 @@ export function getCanvasNameStore() { }); } -export function getActiveMetricsViewNameStore() { +export function getActiveMetricsViewNameStore(client: RuntimeClient) { const exploreNameStore = getExploreNameStore(); const validSpecQuery = createQuery( - getExploreValidSpecQueryOptions(exploreNameStore), + getExploreValidSpecQueryOptions(client, exploreNameStore), queryClient, ); diff --git a/web-common/src/features/dashboards/selectors.ts b/web-common/src/features/dashboards/selectors.ts index 3d4db58bf43..1e6238ae361 100644 --- a/web-common/src/features/dashboards/selectors.ts +++ b/web-common/src/features/dashboards/selectors.ts @@ -24,7 +24,7 @@ import { type V1MetricsViewTimeRangeResponse, type V1Resource, } from "@rilldata/web-common/runtime-client"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, type CreateQueryOptions, @@ -52,23 +52,19 @@ export function useMetricsView( ); } -export function getValidMetricsViewsQueryOptions() { - return derived(runtime, ({ instanceId }) => { - return getRuntimeServiceListResourcesQueryOptions( - instanceId, - { - kind: ResourceKind.MetricsView, - }, - { - query: { - select: (data) => - data?.resources?.filter( - (res) => !!res.metricsView?.state?.validSpec, - ), - }, +export function getValidMetricsViewsQueryOptions(client: RuntimeClient) { + return getRuntimeServiceListResourcesQueryOptions( + client.instanceId, + { + kind: ResourceKind.MetricsView, + }, + { + query: { + select: (data) => + data?.resources?.filter((res) => !!res.metricsView?.state?.validSpec), }, - ); - }); + }, + ); } export function useValidExplores(instanceId: string) { @@ -152,32 +148,30 @@ export function useMetricsViewTimeRange( } export function getMetricsViewTimeRangeFromExploreQueryOptions( + client: RuntimeClient, exploreNameStore: Readable, ) { const validSpecQuery = createQuery( - getExploreValidSpecQueryOptions(exploreNameStore), + getExploreValidSpecQueryOptions(client, exploreNameStore), queryClient, ); - return derived( - [runtime, validSpecQuery], - ([{ instanceId }, validSpecResp]) => { - const metricsViewSpec = validSpecResp.data?.metricsViewSpec ?? {}; - const exploreSpec = validSpecResp.data?.exploreSpec ?? {}; - const metricsViewName = exploreSpec.metricsView ?? ""; + return derived([validSpecQuery], ([validSpecResp]) => { + const metricsViewSpec = validSpecResp.data?.metricsViewSpec ?? {}; + const exploreSpec = validSpecResp.data?.exploreSpec ?? {}; + const metricsViewName = exploreSpec.metricsView ?? ""; - return getQueryServiceMetricsViewTimeRangeQueryOptions( - instanceId, - metricsViewName, - {}, - { - query: { - enabled: !!metricsViewSpec.timeDimension, - }, + return getQueryServiceMetricsViewTimeRangeQueryOptions( + client.instanceId, + metricsViewName, + {}, + { + query: { + enabled: !!metricsViewSpec.timeDimension, }, - ); - }, - ); + }, + ); + }); } export function hasValidMetricsViewTimeRange( diff --git a/web-common/src/features/dashboards/stores/get-explore-state-from-yaml-config.ts b/web-common/src/features/dashboards/stores/get-explore-state-from-yaml-config.ts index a436ad9db1e..6a6c9add412 100644 --- a/web-common/src/features/dashboards/stores/get-explore-state-from-yaml-config.ts +++ b/web-common/src/features/dashboards/stores/get-explore-state-from-yaml-config.ts @@ -7,6 +7,7 @@ import { getValidComparisonOption } from "@rilldata/web-common/features/dashboar import { convertPartialExploreStateToUrlParams } from "@rilldata/web-common/features/dashboards/url-state/convert-partial-explore-state-to-url-params"; import { ToLegacySortTypeMap } from "@rilldata/web-common/features/dashboards/url-state/legacyMappers"; import { getExploreValidSpecQueryOptions } from "@rilldata/web-common/features/explores/selectors"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { arrayUnorderedEquals } from "@rilldata/web-common/lib/arrayUtils"; import { ISODurationToTimePreset } from "@rilldata/web-common/lib/time/ranges"; import { isoDurationToFullTimeRange } from "@rilldata/web-common/lib/time/ranges/iso-ranges"; @@ -47,13 +48,14 @@ export function getExploreStateFromYAMLConfig( } export function createUrlForExploreYAMLDefaultState( + client: RuntimeClient, exploreNameStore: Readable, ) { const validSpecQuery = createQuery( - getExploreValidSpecQueryOptions(exploreNameStore), + getExploreValidSpecQueryOptions(client, exploreNameStore), ); const timeRangeQuery = createQuery( - getMetricsViewTimeRangeFromExploreQueryOptions(exploreNameStore), + getMetricsViewTimeRangeFromExploreQueryOptions(client, exploreNameStore), ); return derived( diff --git a/web-common/src/features/dashboards/stores/utils.ts b/web-common/src/features/dashboards/stores/utils.ts deleted file mode 100644 index 2a946dd165e..00000000000 --- a/web-common/src/features/dashboards/stores/utils.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { getMetricsViewTimeRangeFromExploreQueryOptions } from "@rilldata/web-common/features/dashboards/selectors.ts"; -import { metricsExplorerStore } from "@rilldata/web-common/features/dashboards/stores/dashboard-stores.ts"; -import { createAndExpression } from "@rilldata/web-common/features/dashboards/stores/filter-utils.ts"; -import type { FiltersState } from "@rilldata/web-common/features/dashboards/stores/Filters.ts"; -import type { TimeControlState } from "@rilldata/web-common/features/dashboards/stores/TimeControls.ts"; -import { getTimeControlState } from "@rilldata/web-common/features/dashboards/time-controls/time-control-store.ts"; -import { getExploreValidSpecQueryOptions } from "@rilldata/web-common/features/explores/selectors.ts"; -import { createQuery } from "@tanstack/svelte-query"; -import { derived, type Readable } from "svelte/store"; - -export function getFilterStateFromNameStore( - exploreNameStore: Readable, -): Readable { - return derived( - [metricsExplorerStore, exploreNameStore], - ([metricsExplorerState, exploreName]) => { - const exploreState = metricsExplorerState.entities[exploreName]; - const filtersState: FiltersState = { - whereFilter: exploreState?.whereFilter ?? createAndExpression([]), - dimensionThresholdFilters: - exploreState?.dimensionThresholdFilters ?? [], - dimensionsWithInlistFilter: - exploreState?.dimensionsWithInlistFilter ?? [], - dimensionFilterExcludeMode: - exploreState?.dimensionFilterExcludeMode ?? new Map(), - }; - - return filtersState; - }, - ); -} - -export function getTimeControlsStateFromNameStore( - exploreNameStore: Readable, -) { - const validSpecQuery = createQuery( - getExploreValidSpecQueryOptions(exploreNameStore), - ); - const metricsViewTimeRangeQuery = createQuery( - getMetricsViewTimeRangeFromExploreQueryOptions(exploreNameStore), - ); - - return derived( - [ - metricsExplorerStore, - exploreNameStore, - validSpecQuery, - metricsViewTimeRangeQuery, - ], - ([metricsExplorerState, exploreName, validSpecResp, timeRangeResp]) => { - const exploreState = metricsExplorerState.entities[exploreName]; - const metricsViewSpec = validSpecResp.data?.metricsViewSpec ?? {}; - const exploreSpec = validSpecResp.data?.exploreSpec ?? {}; - const timeRangeSummary = timeRangeResp.data?.timeRangeSummary; - - const exploreTimeControlState = exploreState - ? getTimeControlState( - metricsViewSpec, - exploreSpec, - timeRangeSummary, - exploreState, - ) - : undefined; - const timeControlState = { - selectedTimeRange: exploreTimeControlState?.selectedTimeRange, - selectedComparisonTimeRange: - exploreTimeControlState?.selectedComparisonTimeRange, - showTimeComparison: exploreTimeControlState?.showTimeComparison, - selectedTimezone: exploreState?.selectedTimezone, - }; - - return timeControlState; - }, - ); -} diff --git a/web-common/src/features/dashboards/time-controls/time-control-store.ts b/web-common/src/features/dashboards/time-controls/time-control-store.ts index ef3070db980..79e57ebdd7c 100644 --- a/web-common/src/features/dashboards/time-controls/time-control-store.ts +++ b/web-common/src/features/dashboards/time-controls/time-control-store.ts @@ -14,6 +14,7 @@ import { getExploreValidSpecQueryOptions, useExploreValidSpec, } from "@rilldata/web-common/features/explores/selectors"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; import { getComparionRangeForScrub, @@ -266,14 +267,15 @@ export function createTimeControlStoreFromName( } export function createStableTimeControlStoreFromName( + client: RuntimeClient, exploreNameStore: Readable, ) { const validSpecQuery = createQuery( - getExploreValidSpecQueryOptions(exploreNameStore), + getExploreValidSpecQueryOptions(client, exploreNameStore), queryClient, ); const metricsViewTimeRangeQuery = createQuery( - getMetricsViewTimeRangeFromExploreQueryOptions(exploreNameStore), + getMetricsViewTimeRangeFromExploreQueryOptions(client, exploreNameStore), queryClient, ); const exploreStore = useStableExploreState(exploreNameStore); diff --git a/web-common/src/features/dashboards/url-state/get-rill-default-explore-url-params.ts b/web-common/src/features/dashboards/url-state/get-rill-default-explore-url-params.ts index 5da95a9b39d..5e19521484b 100644 --- a/web-common/src/features/dashboards/url-state/get-rill-default-explore-url-params.ts +++ b/web-common/src/features/dashboards/url-state/get-rill-default-explore-url-params.ts @@ -10,6 +10,7 @@ import { getExploreValidSpecQueryOptions, useExploreValidSpec, } from "@rilldata/web-common/features/explores/selectors"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { type V1ExploreSpec, type V1MetricsViewSpec, @@ -80,13 +81,14 @@ export function createRillDefaultExploreUrlParams( * TODO: replace {@link createRillDefaultExploreUrlParams} with this */ export function createRillDefaultExploreUrlParamsV2( + client: RuntimeClient, exploreNameStore: Readable, ) { const validSpecQuery = createQuery( - getExploreValidSpecQueryOptions(exploreNameStore), + getExploreValidSpecQueryOptions(client, exploreNameStore), ); const timeRangeQuery = createQuery( - getMetricsViewTimeRangeFromExploreQueryOptions(exploreNameStore), + getMetricsViewTimeRangeFromExploreQueryOptions(client, exploreNameStore), ); return derived( diff --git a/web-common/src/features/explores/selectors.ts b/web-common/src/features/explores/selectors.ts index b1dc56c2e35..39cba132490 100644 --- a/web-common/src/features/explores/selectors.ts +++ b/web-common/src/features/explores/selectors.ts @@ -1,4 +1,4 @@ -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { type CreateQueryOptions, type QueryFunction, @@ -77,11 +77,12 @@ export function useExploreValidSpec( } export function getExploreValidSpecQueryOptions( + client: RuntimeClient, exploreNameStore: Readable, ) { - return derived([runtime, exploreNameStore], ([{ instanceId }, exploreName]) => + return derived([exploreNameStore], ([exploreName]) => getRuntimeServiceGetExploreQueryOptions( - instanceId, + client.instanceId, { name: exploreName, }, From fb10785fdbd8bf93a32655c78af401764d75525c Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Wed, 25 Feb 2026 10:58:49 +0300 Subject: [PATCH 25/27] refactor: migrate web-common features from `runtime` store to `RuntimeClient` Migrate ~100 files across chat, alerts, scheduled reports, file management, entity management, workspaces, sources, models, metrics-views, connectors, explore-mappers, exports, and other features from the global `runtime` store to `useRuntimeClient()` / `RuntimeClient` parameter threading. Key changes: - Add `host` property to `RuntimeClient` class - Convert `canvasChatConfig` to `createCanvasChatConfig(client)` factory - Thread `RuntimeClient` through `Conversation` and `ConversationManager` - Migrate `resource-selectors.ts` query option factories to accept `client` - Migrate chat picker data (models, canvases) to accept `client` - Migrate `connectors/code-utils.ts`, `file-artifact.ts`, `new-files.ts`, `submitAddDataForm.ts`, `explore-mappers/*.ts` to accept instanceId/client - Migrate `vega-embed-options.ts` to accept `RuntimeClient` - Migrate `RillIntakeClient` to accept `host` parameter - All `.svelte` callers updated to use `useRuntimeClient()` --- .../ConnectedPreviewTable.svelte | 6 ++-- .../components/vega/VegaLiteRenderer.svelte | 4 +++ .../src/components/vega/VegaRenderer.svelte | 4 +++ .../src/components/vega/vega-embed-options.ts | 22 ++++++------ .../src/features/alerts/AlertForm.svelte | 5 +-- .../src/features/alerts/alert-preview-data.ts | 9 ++--- .../alerts/criteria-tab/AlertPreview.svelte | 4 +++ .../alerts/criteria-tab/CriteriaForm.svelte | 8 ++--- .../alerts/data-tab/AlertDialogDataTab.svelte | 18 +++++++--- .../alerts/data-tab/DataPreview.svelte | 4 +++ .../AlertDialogDeliveryTab.svelte | 8 ++--- .../features/canvas/CreateCanvasDialog.svelte | 4 +++ .../src/features/canvas/chat-context.ts | 30 ++++++++-------- .../src/features/chat/DashboardChat.svelte | 4 +-- .../features/chat/core/context/metadata.ts | 2 +- .../chat/core/context/picker/data/canvases.ts | 15 ++++---- .../chat/core/context/picker/data/index.ts | 4 +-- .../core/context/picker/data/metrics-views.ts | 6 ++-- .../chat/core/context/picker/data/models.ts | 10 +++--- .../chat/core/conversation-manager.ts | 21 +++++++----- .../src/features/chat/core/conversation.ts | 14 ++++++-- .../chat/core/messages/Messages.svelte | 9 ++--- .../core/messages/chart/ChartBlock.svelte | 6 ++-- .../core/messages/text/citation-url-mapper.ts | 2 +- web-common/src/features/chat/core/utils.ts | 34 ++++++++----------- .../chat/layouts/fullpage/FullPageChat.svelte | 7 ++-- .../chat/layouts/inline/InlineChat.svelte | 7 ++-- .../chat/layouts/sidebar/SidebarChat.svelte | 7 ++-- .../chat/layouts/sidebar/SidebarHeader.svelte | 5 +-- .../features/connectors/code-utils.spec.ts | 14 ++++++++ .../src/features/connectors/code-utils.ts | 13 +++---- .../connectors/explorer/TableMenuItems.svelte | 4 +++ .../explorer/TableWorkspaceHeader.svelte | 1 + .../filters/ExploreFilterChipsReadOnly.svelte | 8 ++++- .../ViewAsButton.svelte | 4 +-- .../resetSelectedMockUserAfterNavigate.ts | 7 ++-- .../granular-access-policies/updateDevJWT.ts | 4 +-- .../editor/FileWorkspaceHeader.svelte | 6 ++-- .../entity-management/AddAssetButton.svelte | 25 +++++++++----- .../CreateExploreDialog.svelte | 4 +++ .../FileAndResourceWatcher.svelte | 7 +++- .../entity-management/RenameAssetModal.svelte | 6 ++-- .../file-and-resource-watcher.ts | 10 ++++-- .../entity-management/file-artifact.ts | 10 +++--- .../entity-management/file-artifacts.ts | 11 ++++-- .../entity-management/resource-selectors.ts | 24 ++++++++----- .../explore-mappers/generate-explore-link.ts | 2 ++ ...dashboard-from-aggregation-request.spec.ts | 1 + .../get-dashboard-from-aggregation-request.ts | 1 + .../get-dashboard-from-comparison-request.ts | 2 ++ .../explore-mappers/get-mapped-explore-url.ts | 2 +- .../explore-mappers/map-to-explore.ts | 8 ++--- .../src/features/explore-mappers/utils.ts | 10 +++--- .../explores/explore-link/ExploreLink.svelte | 4 +++ .../src/features/exports/ExportMenu.svelte | 9 ++--- .../file-explorer/FileExplorer.svelte | 6 ++-- .../file-explorer/NavDirectoryEntry.svelte | 6 ++-- .../src/features/file-explorer/NavFile.svelte | 6 ++-- .../src/features/file-explorer/new-files.ts | 9 ++--- .../metrics-views/GoToDashboardButton.svelte | 19 ++++++++--- .../metrics-views/MetricsInspector.svelte | 5 +-- .../metrics-views/MetricsViewMenuItems.svelte | 12 +++++-- .../ai-generation/generateMetricsView.ts | 16 +++++++-- .../create-and-preview-explore.ts | 3 ++ .../metrics-views/editor/Placeholder.svelte | 6 ++-- ...asures-and-dimensions-for-metrics-views.ts | 9 ++--- .../incremental/ModelRefreshButton.svelte | 5 +-- .../models/navigation/ModelMenuItems.svelte | 9 +++-- .../models/partitions/PartitionsTable.svelte | 6 ++-- .../models/partitions/TriggerPartition.svelte | 5 +-- .../workspace/CreateDashboardButton.svelte | 6 ++-- .../models/workspace/ModelEditor.svelte | 6 ++-- .../workspace/ModelWorkspaceCTAs.svelte | 7 ++-- .../onboarding/OnboardingWorkspace.svelte | 11 +++--- .../navigation/GraphContainer.svelte | 6 ++-- .../quick-view/QuickView.svelte | 6 ++-- .../sample-data/GenerateSampleData.svelte | 7 ++-- .../sample-data/generate-sample-data.ts | 8 +++-- .../BaseScheduledReportForm.svelte | 17 ++++++---- .../scheduled-reports/ScheduleForm.svelte | 6 ++-- .../ScheduledReportDialog.svelte | 6 ++-- .../features/sources/errors/ErrorPane.svelte | 6 ++-- .../features/sources/modal/AddDataForm.svelte | 8 +++-- .../sources/modal/AddDataFormManager.ts | 28 ++++++++++++--- .../sources/modal/AddDataModal.svelte | 6 ++-- .../features/sources/modal/FileDrop.svelte | 6 ++-- .../sources/modal/LocalSourceUpload.svelte | 6 ++-- .../sources/modal/SourceImportedModal.svelte | 8 +++-- .../sources/modal/submitAddDataForm.ts | 32 +++++++++++------ .../sources/navigation/SourceMenuItems.svelte | 10 ++++-- .../features/visual-editing/ThemeInput.svelte | 6 ++-- .../src/features/welcome/ProjectCards.svelte | 6 ++-- .../workspaces/CanvasWorkspace.svelte | 25 +++++++++----- .../workspaces/ExploreWorkspace.svelte | 18 ++++++---- .../workspaces/MetricsWorkspace.svelte | 23 ++++++++----- .../features/workspaces/ModelWorkspace.svelte | 23 +++++++++---- .../workspaces/VisualExploreEditing.svelte | 13 ++++--- .../features/workspaces/VisualMetrics.svelte | 34 ++++++++++++------- .../workspaces/WorkspaceBreadcrumbs.svelte | 14 +++++--- .../src/layout/ApplicationHeader.svelte | 5 +-- web-common/src/metrics/initMetrics.ts | 7 ++-- .../src/metrics/service/RillIntakeClient.ts | 8 ++--- .../src/runtime-client/v2/runtime-client.ts | 2 ++ .../routes/(viz)/explore/[name]/+page.svelte | 5 ++- web-local/src/routes/+layout.svelte | 2 +- 105 files changed, 648 insertions(+), 337 deletions(-) diff --git a/web-common/src/components/preview-table/ConnectedPreviewTable.svelte b/web-common/src/components/preview-table/ConnectedPreviewTable.svelte index cff98a5f205..ed2ac1e0d94 100644 --- a/web-common/src/components/preview-table/ConnectedPreviewTable.svelte +++ b/web-common/src/components/preview-table/ConnectedPreviewTable.svelte @@ -5,7 +5,9 @@ createQueryServiceTableColumns, createQueryServiceTableRows, } from "@rilldata/web-common/runtime-client"; - import { runtime } from "../../runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; + + const runtimeClient = useRuntimeClient(); import WorkspaceError from "../WorkspaceError.svelte"; import type { VirtualizedTableColumns } from "../virtualized-table/types"; import PreviewTable from "./PreviewTable.svelte"; @@ -19,7 +21,7 @@ let columns: VirtualizedTableColumns[] | undefined; let rows: V1TableRowsResponseDataItem[] | undefined; - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); $: columnsQuery = createQueryServiceTableColumns(instanceId, table, { connector, diff --git a/web-common/src/components/vega/VegaLiteRenderer.svelte b/web-common/src/components/vega/VegaLiteRenderer.svelte index 52e774a2e92..f15d68a9039 100644 --- a/web-common/src/components/vega/VegaLiteRenderer.svelte +++ b/web-common/src/components/vega/VegaLiteRenderer.svelte @@ -1,6 +1,7 @@
diff --git a/web-common/src/features/canvas/CreateCanvasDialog.svelte b/web-common/src/features/canvas/CreateCanvasDialog.svelte index f22e598864a..427e3477023 100644 --- a/web-common/src/features/canvas/CreateCanvasDialog.svelte +++ b/web-common/src/features/canvas/CreateCanvasDialog.svelte @@ -9,12 +9,15 @@ import Select from "@rilldata/web-common/components/forms/Select.svelte"; import { ResourceKind } from "@rilldata/web-common/features/entity-management/resource-selectors"; import type { V1Resource } from "@rilldata/web-common/runtime-client"; + import { useRuntimeClient } from "../../runtime-client/v2"; import { createResourceFile } from "../file-explorer/new-files"; export let open = false; export let metricsViews: V1Resource[]; export let wrapNavigation: (path: string | undefined) => Promise; + const runtimeClient = useRuntimeClient(); + let selectedMetricsView: V1Resource | undefined = undefined; $: metricsViewOptions = metricsViews.map((resource) => ({ @@ -25,6 +28,7 @@ async function createResource() { if (selectedMetricsView) { const newFilePath = await createResourceFile( + runtimeClient, ResourceKind.Canvas, selectedMetricsView, ); diff --git a/web-common/src/features/canvas/chat-context.ts b/web-common/src/features/canvas/chat-context.ts index 7d5a363b172..9f93edf9723 100644 --- a/web-common/src/features/canvas/chat-context.ts +++ b/web-common/src/features/canvas/chat-context.ts @@ -7,27 +7,29 @@ import type { V1AnalystAgentContext, } from "@rilldata/web-common/runtime-client"; import { getCanvasNameStore } from "@rilldata/web-common/features/dashboards/nav-utils.ts"; -import { derived, get, type Readable } from "svelte/store"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts"; +import { derived, type Readable } from "svelte/store"; import { getCanvasStoreUnguarded } from "@rilldata/web-common/features/canvas/state-managers/state-managers.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; -export const canvasChatConfig = { - agent: ToolName.ANALYST_AGENT, - additionalContextStoreGetter: () => getActiveCanvasContext(), - emptyChatLabel: "Happy to help explore your data", - placeholder: - "Type a question, or press @ to insert a metric, dimension, or measure.", - minChatHeight: "min-h-[4rem]", -} satisfies ChatConfig; +export function createCanvasChatConfig(client: RuntimeClient): ChatConfig { + return { + agent: ToolName.ANALYST_AGENT, + additionalContextStoreGetter: () => getActiveCanvasContext(client), + emptyChatLabel: "Happy to help explore your data", + placeholder: + "Type a question, or press @ to insert a metric, dimension, or measure.", + minChatHeight: "min-h-[4rem]", + }; +} /** * Creates a store that contains the active explore context sent to the Complete API. * It returns RuntimeServiceCompleteBody with V1AnalystAgentContext that is passed to the API. */ -function getActiveCanvasContext(): Readable< - Partial -> { - const instanceId = get(runtime).instanceId; +function getActiveCanvasContext( + client: RuntimeClient, +): Readable> { + const instanceId = client.instanceId; const canvasNameStore = getCanvasNameStore(); return derived([canvasNameStore], ([canvasName], set) => { diff --git a/web-common/src/features/chat/DashboardChat.svelte b/web-common/src/features/chat/DashboardChat.svelte index a18fe0e98d4..d2cb5a949af 100644 --- a/web-common/src/features/chat/DashboardChat.svelte +++ b/web-common/src/features/chat/DashboardChat.svelte @@ -4,7 +4,7 @@ import { chatOpen } from "./layouts/sidebar/sidebar-store"; import { createDashboardChatConfig } from "@rilldata/web-common/features/dashboards/chat-context.ts"; import { ResourceKind } from "@rilldata/web-common/features/entity-management/resource-selectors.ts"; - import { canvasChatConfig } from "@rilldata/web-common/features/canvas/chat-context.ts"; + import { createCanvasChatConfig } from "@rilldata/web-common/features/canvas/chat-context.ts"; import ThemeProvider from "@rilldata/web-common/features/dashboards/ThemeProvider.svelte"; import { activeDashboardTheme } from "@rilldata/web-common/features/themes/active-dashboard-theme"; import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; @@ -17,7 +17,7 @@ $: chatConfig = kind === ResourceKind.Explore ? createDashboardChatConfig(runtimeClient) - : canvasChatConfig; + : createCanvasChatConfig(runtimeClient); const { dashboardChat } = featureFlags; diff --git a/web-common/src/features/chat/core/context/metadata.ts b/web-common/src/features/chat/core/context/metadata.ts index 329a51cd234..5c9d46c54eb 100644 --- a/web-common/src/features/chat/core/context/metadata.ts +++ b/web-common/src/features/chat/core/context/metadata.ts @@ -43,7 +43,7 @@ export function getInlineChatContextMetadata( ); const canvasResourcesQuery = createQuery( - getClientFilteredResourcesQueryOptions(ResourceKind.Canvas, (res) => + getClientFilteredResourcesQueryOptions(client, ResourceKind.Canvas, (res) => Boolean(res.canvas?.state?.validSpec), ), queryClient, diff --git a/web-common/src/features/chat/core/context/picker/data/canvases.ts b/web-common/src/features/chat/core/context/picker/data/canvases.ts index dad80361200..b66f5555de3 100644 --- a/web-common/src/features/chat/core/context/picker/data/canvases.ts +++ b/web-common/src/features/chat/core/context/picker/data/canvases.ts @@ -1,5 +1,5 @@ import type { PickerItem } from "@rilldata/web-common/features/chat/core/context/picker/picker-tree.ts"; -import { derived, get, type Readable } from "svelte/store"; +import { derived, type Readable } from "svelte/store"; import { getClientFilteredResourcesQueryOptions, ResourceKind, @@ -7,7 +7,6 @@ import { import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient.ts"; import { getCanvasNameStore } from "@rilldata/web-common/features/dashboards/nav-utils.ts"; import { createQuery } from "@tanstack/svelte-query"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts"; import { getQueryServiceResolveCanvasQueryOptions } from "@rilldata/web-common/runtime-client"; import { getIdForContext, @@ -17,19 +16,21 @@ import { import { ContextPickerUIState } from "@rilldata/web-common/features/chat/core/context/picker/ui-state.ts"; import { getLatestConversationQueryOptions } from "@rilldata/web-common/features/chat/core/utils.ts"; import { MessageType } from "@rilldata/web-common/features/chat/core/types.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; export function getCanvasesPickerOptions( + client: RuntimeClient, uiState: ContextPickerUIState, ): Readable { const canvasResourcesQuery = createQuery( - getClientFilteredResourcesQueryOptions(ResourceKind.Canvas, (res) => + getClientFilteredResourcesQueryOptions(client, ResourceKind.Canvas, (res) => Boolean(res.canvas?.state?.validSpec), ), queryClient, ); - const lastUsedCanvasNameStore = getLastUsedCanvasNameStore(); + const lastUsedCanvasNameStore = getLastUsedCanvasNameStore(client); const activeCanvasNameStore = getCanvasNameStore(); - const instanceId = get(runtime).instanceId; + const instanceId = client.instanceId; return derived( [canvasResourcesQuery, lastUsedCanvasNameStore, activeCanvasNameStore], @@ -133,9 +134,9 @@ function getCanvasComponentsQueryOptions( /** * Looks at the last conversation and returns the canvas used in the last message or tool call. */ -function getLastUsedCanvasNameStore() { +function getLastUsedCanvasNameStore(client: RuntimeClient) { const lastConversationQuery = createQuery( - getLatestConversationQueryOptions(), + getLatestConversationQueryOptions(client), queryClient, ); diff --git a/web-common/src/features/chat/core/context/picker/data/index.ts b/web-common/src/features/chat/core/context/picker/data/index.ts index c67f5a4c903..e6b895d86f3 100644 --- a/web-common/src/features/chat/core/context/picker/data/index.ts +++ b/web-common/src/features/chat/core/context/picker/data/index.ts @@ -27,8 +27,8 @@ export function getPickerOptions( [ getInlineChatContextMetadata(client), getMetricsViewPickerOptions(client), - getCanvasesPickerOptions(uiState), - isRillDev ? getModelsPickerOptions(uiState) : readable(null), + getCanvasesPickerOptions(client, uiState), + isRillDev ? getModelsPickerOptions(client, uiState) : readable(null), uiState.expandedParentsStore, ], ([metadata, metricsViewOptions, canvasOptions, filesOption]) => { diff --git a/web-common/src/features/chat/core/context/picker/data/metrics-views.ts b/web-common/src/features/chat/core/context/picker/data/metrics-views.ts index 4f46b44e7dd..f24348f5860 100644 --- a/web-common/src/features/chat/core/context/picker/data/metrics-views.ts +++ b/web-common/src/features/chat/core/context/picker/data/metrics-views.ts @@ -26,7 +26,7 @@ export function getMetricsViewPickerOptions( queryClient, ); - const lastUsedMetricsViewStore = getLastUsedMetricsViewNameStore(); + const lastUsedMetricsViewStore = getLastUsedMetricsViewNameStore(client); const activeMetricsViewStore = getActiveMetricsViewNameStore(client); return derived( @@ -88,9 +88,9 @@ export function getMetricsViewPickerOptions( /** * Looks at the last conversation and returns the metrics view used in the last message or tool call. */ -function getLastUsedMetricsViewNameStore() { +function getLastUsedMetricsViewNameStore(client: RuntimeClient) { const lastConversationQuery = createQuery( - getLatestConversationQueryOptions(), + getLatestConversationQueryOptions(client), queryClient, ); diff --git a/web-common/src/features/chat/core/context/picker/data/models.ts b/web-common/src/features/chat/core/context/picker/data/models.ts index 736912ce714..ceba9c6aaa2 100644 --- a/web-common/src/features/chat/core/context/picker/data/models.ts +++ b/web-common/src/features/chat/core/context/picker/data/models.ts @@ -14,10 +14,10 @@ import { } from "@rilldata/web-common/features/entity-management/resource-selectors.ts"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient.ts"; import { derived, type Readable } from "svelte/store"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts"; import { createQuery } from "@tanstack/svelte-query"; import { ContextPickerUIState } from "@rilldata/web-common/features/chat/core/context/picker/ui-state.ts"; import type { PickerItem } from "@rilldata/web-common/features/chat/core/context/picker/picker-tree.ts"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; /** * Creates a store that contains a 2-level list of sources/model resources. @@ -26,17 +26,19 @@ import type { PickerItem } from "@rilldata/web-common/features/chat/core/context * NOTE: this only lists resources that are parsed as sources/models. Any parse errors will exclude the file. */ export function getModelsPickerOptions( + client: RuntimeClient, uiState: ContextPickerUIState, ): Readable { const modelResourcesQuery = createQuery( - getClientFilteredResourcesQueryOptions(ResourceKind.Model), + getClientFilteredResourcesQueryOptions(client, ResourceKind.Model), queryClient, ); const activeResourceStore = getActiveResourceStore(); return derived( - [runtime, modelResourcesQuery, activeResourceStore], - ([{ instanceId }, modelResourcesResp, activeResource], set) => { + [modelResourcesQuery, activeResourceStore], + ([modelResourcesResp, activeResource], set) => { + const instanceId = client.instanceId; const models = modelResourcesResp.data ?? []; const modelPickerItems: PickerItem[] = []; const modelQueryOptions: ReturnType< diff --git a/web-common/src/features/chat/core/conversation-manager.ts b/web-common/src/features/chat/core/conversation-manager.ts index 39aeb65e8e9..8937ae816ff 100644 --- a/web-common/src/features/chat/core/conversation-manager.ts +++ b/web-common/src/features/chat/core/conversation-manager.ts @@ -4,6 +4,7 @@ import { type RpcStatus, type V1ListConversationsResponse, } from "@rilldata/web-common/runtime-client"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { createQuery, type CreateQueryResult } from "@tanstack/svelte-query"; import { derived, get, type Readable } from "svelte/store"; import { Conversation } from "./conversation"; @@ -51,8 +52,12 @@ export class ConversationManager { private conversationSelector: ConversationSelector; private readonly agent?: string; + public get instanceId(): string { + return this.client.instanceId; + } + constructor( - public readonly instanceId: string, + private readonly client: RuntimeClient, options: ConversationManagerOptions, ) { this.agent = options.agent; @@ -110,7 +115,7 @@ export class ConversationManager { // Otherwise, create a conversation instance and store it const conversation = new Conversation( - this.instanceId, + this.client, $conversationId, this.agent, ); @@ -159,7 +164,7 @@ export class ConversationManager { private createNewConversation() { this.newConversationUnsub?.(); this.newConversation = new Conversation( - this.instanceId, + this.client, NEW_CONVERSATION_ID, this.agent, ); @@ -278,21 +283,21 @@ function getConversationManagerKey(instanceId: string, agent?: string): string { } /** - * Get or create a ConversationManager instance for the given instanceId and agent + * Get or create a ConversationManager instance for the given client and agent * - * @param instanceId - The project/instance identifier + * @param client - The RuntimeClient instance * @param options - Configuration options for the conversation manager instance * @returns The ConversationManager instance for this project and agent */ export function getConversationManager( - instanceId: string, + client: RuntimeClient, options: ConversationManagerOptions, ): ConversationManager { - const key = getConversationManagerKey(instanceId, options.agent); + const key = getConversationManagerKey(client.instanceId, options.agent); if (!conversationManagerInstances.has(key)) { conversationManagerInstances.set( key, - new ConversationManager(instanceId, options), + new ConversationManager(client, options), ); } return conversationManagerInstances.get(key)!; diff --git a/web-common/src/features/chat/core/conversation.ts b/web-common/src/features/chat/core/conversation.ts index fec4fa10153..9595d00f3cc 100644 --- a/web-common/src/features/chat/core/conversation.ts +++ b/web-common/src/features/chat/core/conversation.ts @@ -11,7 +11,7 @@ import { type V1GetConversationResponse, type V1Message, } from "@rilldata/web-common/runtime-client"; -import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; import { SSEFetchClient, SSEHttpError, @@ -80,6 +80,14 @@ export class Conversation { // Reactive store for conversationId - enables query to auto-update when ID changes private readonly conversationIdStore: Writable; + private get instanceId(): string { + return this.client.instanceId; + } + + public get runtimeClient(): RuntimeClient { + return this.client; + } + public get conversationId(): string { return get(this.conversationIdStore); } @@ -89,7 +97,7 @@ export class Conversation { } constructor( - private readonly instanceId: string, + private readonly client: RuntimeClient, initialConversationId: string, private readonly agent: string = ToolName.ANALYST_AGENT, ) { @@ -334,7 +342,7 @@ export class Conversation { this.ensureSSEClient(); this.sseClient!.stop(); - const baseUrl = `${get(runtime).host}/v1/instances/${this.instanceId}/ai/complete/stream?stream=messages`; + const baseUrl = `${this.client.host}/v1/instances/${this.instanceId}/ai/complete/stream?stream=messages`; const requestBody = { instanceId: this.instanceId, diff --git a/web-common/src/features/chat/core/messages/Messages.svelte b/web-common/src/features/chat/core/messages/Messages.svelte index 877603d5a1d..3db9cfd3808 100644 --- a/web-common/src/features/chat/core/messages/Messages.svelte +++ b/web-common/src/features/chat/core/messages/Messages.svelte @@ -1,9 +1,8 @@ diff --git a/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte b/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte index eb18e2ecd33..d5a5dd8d6b7 100644 --- a/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte +++ b/web-common/src/features/dashboards/granular-access-policies/ViewAsButton.svelte @@ -45,7 +45,7 @@ active={viewAsMenuOpen} removeTooltipText="Clear view" onRemove={() => { - updateDevJWT(queryClient, null); + updateDevJWT(queryClient, instanceId, null); }} >
@@ -62,7 +62,7 @@ {#each $mockUsers.data as user (user?.email)} { - updateDevJWT(queryClient, user); + updateDevJWT(queryClient, instanceId, user); }} class="flex gap-x-2 items-center" > diff --git a/web-common/src/features/dashboards/granular-access-policies/resetSelectedMockUserAfterNavigate.ts b/web-common/src/features/dashboards/granular-access-policies/resetSelectedMockUserAfterNavigate.ts index 7db87032c0e..e1c10eababf 100644 --- a/web-common/src/features/dashboards/granular-access-policies/resetSelectedMockUserAfterNavigate.ts +++ b/web-common/src/features/dashboards/granular-access-policies/resetSelectedMockUserAfterNavigate.ts @@ -13,7 +13,10 @@ import { get } from "svelte/store"; * under this scenario, the catalog entry returns a 404, and it's required to enter the top-level * `Dashboard.svelte` component. */ -export function resetSelectedMockUserAfterNavigate(queryClient: QueryClient) { +export function resetSelectedMockUserAfterNavigate( + queryClient: QueryClient, + instanceId: string, +) { beforeNavigate(({ to, from }) => { if (!to?.params || !from?.params) return; @@ -21,7 +24,7 @@ export function resetSelectedMockUserAfterNavigate(queryClient: QueryClient) { from.params.name !== to.params.name && get(selectedMockUserStore) !== null ) { - updateDevJWT(queryClient, null).catch(console.error); + updateDevJWT(queryClient, instanceId, null).catch(console.error); } }); } diff --git a/web-common/src/features/dashboards/granular-access-policies/updateDevJWT.ts b/web-common/src/features/dashboards/granular-access-policies/updateDevJWT.ts index da058a6a9a4..34440c8e10e 100644 --- a/web-common/src/features/dashboards/granular-access-policies/updateDevJWT.ts +++ b/web-common/src/features/dashboards/granular-access-policies/updateDevJWT.ts @@ -7,10 +7,10 @@ import { runtimeServiceIssueDevJWT } from "@rilldata/web-common/runtime-client"; import { invalidateAllMetricsViews } from "@rilldata/web-common/runtime-client/invalidation"; import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import type { QueryClient } from "@tanstack/svelte-query"; -import { get } from "svelte/store"; export async function updateDevJWT( queryClient: QueryClient, + instanceId: string, mockUser: MockUser | null, ) { selectedMockUserStore.set(mockUser); @@ -50,5 +50,5 @@ export async function updateDevJWT( } } - return invalidateAllMetricsViews(queryClient, get(runtime).instanceId); + return invalidateAllMetricsViews(queryClient, instanceId); } diff --git a/web-common/src/features/editor/FileWorkspaceHeader.svelte b/web-common/src/features/editor/FileWorkspaceHeader.svelte index 74544c99511..a4f1c596170 100644 --- a/web-common/src/features/editor/FileWorkspaceHeader.svelte +++ b/web-common/src/features/editor/FileWorkspaceHeader.svelte @@ -2,7 +2,9 @@ import { goto } from "$app/navigation"; import { splitFolderAndFileName } from "@rilldata/web-common/features/entity-management/file-path-utils"; import { handleEntityRename } from "@rilldata/web-common/features/entity-management/ui-actions"; - import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2"; + + const runtimeClient = useRuntimeClient(); import { WorkspaceHeader } from "../../layout/workspace"; import type { ResourceKind } from "../entity-management/resource-selectors"; import { PROTECTED_FILES } from "../file-explorer/protected-paths"; @@ -18,7 +20,7 @@ $: [, fileName] = splitFolderAndFileName(filePath); $: isProtectedFile = PROTECTED_FILES.includes(filePath); - $: ({ instanceId } = $runtime); + $: ({ instanceId } = runtimeClient); const onChangeCallback = async (newTitle: string) => { const route = await handleEntityRename( diff --git a/web-common/src/features/entity-management/AddAssetButton.svelte b/web-common/src/features/entity-management/AddAssetButton.svelte index be170347e06..e23b139d8ed 100644 --- a/web-common/src/features/entity-management/AddAssetButton.svelte +++ b/web-common/src/features/entity-management/AddAssetButton.svelte @@ -17,7 +17,7 @@ createRuntimeServiceCreateDirectory, createRuntimeServicePutFile, } from "../../runtime-client"; - import { runtime } from "../../runtime-client/runtime-store"; + import { useRuntimeClient } from "../../runtime-client/v2"; import { useIsModelingSupportedForDefaultOlapDriverOLAP as useIsModelingSupportedForDefaultOlapDriver } from "../connectors/selectors"; import { directoryState } from "../file-explorer/directory-store"; import { createResourceAndNavigate } from "../file-explorer/new-files"; @@ -42,7 +42,8 @@ const createFile = createRuntimeServicePutFile(); const createFolder = createRuntimeServiceCreateDirectory(); - $: ({ instanceId } = $runtime); + const runtimeClient = useRuntimeClient(); + $: ({ instanceId } = runtimeClient); const { developerChat } = featureFlags; $: currentFile = $page.params.file; @@ -173,7 +174,8 @@ aria-label="Add Model" class="flex gap-x-2" disabled={!isModelingSupported} - on:click={() => createResourceAndNavigate(ResourceKind.Model)} + on:click={() => + createResourceAndNavigate(runtimeClient, ResourceKind.Model)} > createResourceAndNavigate(ResourceKind.MetricsView)} + on:click={() => + createResourceAndNavigate(runtimeClient, ResourceKind.MetricsView)} > { if (metricsViews.length === 1) { void createResourceAndNavigate( + runtimeClient, ResourceKind.Explore, metricsViews.pop(), ); @@ -233,7 +237,8 @@ createResourceAndNavigate(ResourceKind.Canvas)} + on:click={() => + createResourceAndNavigate(runtimeClient, ResourceKind.Canvas)} disabled={metricsViews.length === 0} >
@@ -273,7 +278,8 @@ createResourceAndNavigate(ResourceKind.API)} + on:click={() => + createResourceAndNavigate(runtimeClient, ResourceKind.API)} > createResourceAndNavigate(ResourceKind.Theme)} + on:click={() => + createResourceAndNavigate(runtimeClient, ResourceKind.Theme)} > -