feat(core): add integration-backed search
This commit is contained in:
parent
41d11a8a89
commit
129012c3ee
50 changed files with 1745 additions and 478 deletions
|
|
@ -355,63 +355,77 @@ export type Endpoint9_1Input = {
|
|||
export type Endpoint9_1Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.get"]>>
|
||||
export type IntegrationGetOperation<E = never> = (input: Endpoint9_1Input) => Effect.Effect<Endpoint9_1Output, E>
|
||||
|
||||
type Endpoint9_2Request = Parameters<RawClient["server.integration"]["integration.connect.key"]>[0]
|
||||
type Endpoint9_2Request = Parameters<RawClient["server.integration"]["integration.capability.select"]>[0]
|
||||
export type Endpoint9_2Input = {
|
||||
readonly integrationID: Endpoint9_2Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_2Request["query"]["location"]
|
||||
readonly key: Endpoint9_2Request["payload"]["key"]
|
||||
readonly label?: Endpoint9_2Request["payload"]["label"]
|
||||
readonly capability: Endpoint9_2Request["payload"]["capability"]
|
||||
}
|
||||
export type Endpoint9_2Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.connect.key"]>>
|
||||
export type IntegrationConnectKeyOperation<E = never> = (input: Endpoint9_2Input) => Effect.Effect<Endpoint9_2Output, E>
|
||||
export type Endpoint9_2Output = EffectValue<
|
||||
ReturnType<RawClient["server.integration"]["integration.capability.select"]>
|
||||
>
|
||||
export type IntegrationSelectCapabilityOperation<E = never> = (
|
||||
input: Endpoint9_2Input,
|
||||
) => Effect.Effect<Endpoint9_2Output, E>
|
||||
|
||||
type Endpoint9_3Request = Parameters<RawClient["server.integration"]["integration.connect.oauth"]>[0]
|
||||
type Endpoint9_3Request = Parameters<RawClient["server.integration"]["integration.connect.key"]>[0]
|
||||
export type Endpoint9_3Input = {
|
||||
readonly integrationID: Endpoint9_3Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_3Request["query"]["location"]
|
||||
readonly methodID: Endpoint9_3Request["payload"]["methodID"]
|
||||
readonly inputs: Endpoint9_3Request["payload"]["inputs"]
|
||||
readonly key: Endpoint9_3Request["payload"]["key"]
|
||||
readonly label?: Endpoint9_3Request["payload"]["label"]
|
||||
}
|
||||
export type Endpoint9_3Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.connect.oauth"]>>
|
||||
export type IntegrationConnectOauthOperation<E = never> = (
|
||||
input: Endpoint9_3Input,
|
||||
) => Effect.Effect<Endpoint9_3Output, E>
|
||||
export type Endpoint9_3Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.connect.key"]>>
|
||||
export type IntegrationConnectKeyOperation<E = never> = (input: Endpoint9_3Input) => Effect.Effect<Endpoint9_3Output, E>
|
||||
|
||||
type Endpoint9_4Request = Parameters<RawClient["server.integration"]["integration.attempt.status"]>[0]
|
||||
type Endpoint9_4Request = Parameters<RawClient["server.integration"]["integration.connect.oauth"]>[0]
|
||||
export type Endpoint9_4Input = {
|
||||
readonly attemptID: Endpoint9_4Request["params"]["attemptID"]
|
||||
readonly integrationID: Endpoint9_4Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_4Request["query"]["location"]
|
||||
readonly methodID: Endpoint9_4Request["payload"]["methodID"]
|
||||
readonly inputs: Endpoint9_4Request["payload"]["inputs"]
|
||||
readonly label?: Endpoint9_4Request["payload"]["label"]
|
||||
}
|
||||
export type Endpoint9_4Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.status"]>>
|
||||
export type IntegrationAttemptStatusOperation<E = never> = (
|
||||
export type Endpoint9_4Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.connect.oauth"]>>
|
||||
export type IntegrationConnectOauthOperation<E = never> = (
|
||||
input: Endpoint9_4Input,
|
||||
) => Effect.Effect<Endpoint9_4Output, E>
|
||||
|
||||
type Endpoint9_5Request = Parameters<RawClient["server.integration"]["integration.attempt.complete"]>[0]
|
||||
type Endpoint9_5Request = Parameters<RawClient["server.integration"]["integration.attempt.status"]>[0]
|
||||
export type Endpoint9_5Input = {
|
||||
readonly attemptID: Endpoint9_5Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_5Request["query"]["location"]
|
||||
readonly code?: Endpoint9_5Request["payload"]["code"]
|
||||
}
|
||||
export type Endpoint9_5Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.complete"]>>
|
||||
export type IntegrationAttemptCompleteOperation<E = never> = (
|
||||
export type Endpoint9_5Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.status"]>>
|
||||
export type IntegrationAttemptStatusOperation<E = never> = (
|
||||
input: Endpoint9_5Input,
|
||||
) => Effect.Effect<Endpoint9_5Output, E>
|
||||
|
||||
type Endpoint9_6Request = Parameters<RawClient["server.integration"]["integration.attempt.cancel"]>[0]
|
||||
type Endpoint9_6Request = Parameters<RawClient["server.integration"]["integration.attempt.complete"]>[0]
|
||||
export type Endpoint9_6Input = {
|
||||
readonly attemptID: Endpoint9_6Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_6Request["query"]["location"]
|
||||
readonly code?: Endpoint9_6Request["payload"]["code"]
|
||||
}
|
||||
export type Endpoint9_6Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.cancel"]>>
|
||||
export type IntegrationAttemptCancelOperation<E = never> = (
|
||||
export type Endpoint9_6Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.complete"]>>
|
||||
export type IntegrationAttemptCompleteOperation<E = never> = (
|
||||
input: Endpoint9_6Input,
|
||||
) => Effect.Effect<Endpoint9_6Output, E>
|
||||
|
||||
type Endpoint9_7Request = Parameters<RawClient["server.integration"]["integration.attempt.cancel"]>[0]
|
||||
export type Endpoint9_7Input = {
|
||||
readonly attemptID: Endpoint9_7Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_7Request["query"]["location"]
|
||||
}
|
||||
export type Endpoint9_7Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.cancel"]>>
|
||||
export type IntegrationAttemptCancelOperation<E = never> = (
|
||||
input: Endpoint9_7Input,
|
||||
) => Effect.Effect<Endpoint9_7Output, E>
|
||||
|
||||
export interface IntegrationApi<E = never> {
|
||||
readonly list: IntegrationListOperation<E>
|
||||
readonly get: IntegrationGetOperation<E>
|
||||
readonly selectCapability: IntegrationSelectCapabilityOperation<E>
|
||||
readonly connectKey: IntegrationConnectKeyOperation<E>
|
||||
readonly connectOauth: IntegrationConnectOauthOperation<E>
|
||||
readonly attemptStatus: IntegrationAttemptStatusOperation<E>
|
||||
|
|
|
|||
|
|
@ -437,65 +437,78 @@ const Endpoint9_1 = (raw: RawClient["server.integration"]) => (input: Endpoint9_
|
|||
query: { location: input["location"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint9_2Request = Parameters<RawClient["server.integration"]["integration.connect.key"]>[0]
|
||||
type Endpoint9_2Request = Parameters<RawClient["server.integration"]["integration.capability.select"]>[0]
|
||||
type Endpoint9_2Input = {
|
||||
readonly integrationID: Endpoint9_2Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_2Request["query"]["location"]
|
||||
readonly key: Endpoint9_2Request["payload"]["key"]
|
||||
readonly label?: Endpoint9_2Request["payload"]["label"]
|
||||
readonly capability: Endpoint9_2Request["payload"]["capability"]
|
||||
}
|
||||
const Endpoint9_2 = (raw: RawClient["server.integration"]) => (input: Endpoint9_2Input) =>
|
||||
raw["integration.capability.select"]({
|
||||
params: { integrationID: input["integrationID"] },
|
||||
query: { location: input["location"] },
|
||||
payload: { capability: input["capability"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint9_3Request = Parameters<RawClient["server.integration"]["integration.connect.key"]>[0]
|
||||
type Endpoint9_3Input = {
|
||||
readonly integrationID: Endpoint9_3Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_3Request["query"]["location"]
|
||||
readonly key: Endpoint9_3Request["payload"]["key"]
|
||||
readonly label?: Endpoint9_3Request["payload"]["label"]
|
||||
}
|
||||
const Endpoint9_3 = (raw: RawClient["server.integration"]) => (input: Endpoint9_3Input) =>
|
||||
raw["integration.connect.key"]({
|
||||
params: { integrationID: input["integrationID"] },
|
||||
query: { location: input["location"] },
|
||||
payload: { key: input["key"], label: input["label"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint9_3Request = Parameters<RawClient["server.integration"]["integration.connect.oauth"]>[0]
|
||||
type Endpoint9_3Input = {
|
||||
readonly integrationID: Endpoint9_3Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_3Request["query"]["location"]
|
||||
readonly methodID: Endpoint9_3Request["payload"]["methodID"]
|
||||
readonly inputs: Endpoint9_3Request["payload"]["inputs"]
|
||||
readonly label?: Endpoint9_3Request["payload"]["label"]
|
||||
type Endpoint9_4Request = Parameters<RawClient["server.integration"]["integration.connect.oauth"]>[0]
|
||||
type Endpoint9_4Input = {
|
||||
readonly integrationID: Endpoint9_4Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint9_4Request["query"]["location"]
|
||||
readonly methodID: Endpoint9_4Request["payload"]["methodID"]
|
||||
readonly inputs: Endpoint9_4Request["payload"]["inputs"]
|
||||
readonly label?: Endpoint9_4Request["payload"]["label"]
|
||||
}
|
||||
const Endpoint9_3 = (raw: RawClient["server.integration"]) => (input: Endpoint9_3Input) =>
|
||||
const Endpoint9_4 = (raw: RawClient["server.integration"]) => (input: Endpoint9_4Input) =>
|
||||
raw["integration.connect.oauth"]({
|
||||
params: { integrationID: input["integrationID"] },
|
||||
query: { location: input["location"] },
|
||||
payload: { methodID: input["methodID"], inputs: input["inputs"], label: input["label"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint9_4Request = Parameters<RawClient["server.integration"]["integration.attempt.status"]>[0]
|
||||
type Endpoint9_4Input = {
|
||||
readonly attemptID: Endpoint9_4Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_4Request["query"]["location"]
|
||||
type Endpoint9_5Request = Parameters<RawClient["server.integration"]["integration.attempt.status"]>[0]
|
||||
type Endpoint9_5Input = {
|
||||
readonly attemptID: Endpoint9_5Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_5Request["query"]["location"]
|
||||
}
|
||||
const Endpoint9_4 = (raw: RawClient["server.integration"]) => (input: Endpoint9_4Input) =>
|
||||
const Endpoint9_5 = (raw: RawClient["server.integration"]) => (input: Endpoint9_5Input) =>
|
||||
raw["integration.attempt.status"]({
|
||||
params: { attemptID: input["attemptID"] },
|
||||
query: { location: input["location"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint9_5Request = Parameters<RawClient["server.integration"]["integration.attempt.complete"]>[0]
|
||||
type Endpoint9_5Input = {
|
||||
readonly attemptID: Endpoint9_5Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_5Request["query"]["location"]
|
||||
readonly code?: Endpoint9_5Request["payload"]["code"]
|
||||
type Endpoint9_6Request = Parameters<RawClient["server.integration"]["integration.attempt.complete"]>[0]
|
||||
type Endpoint9_6Input = {
|
||||
readonly attemptID: Endpoint9_6Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_6Request["query"]["location"]
|
||||
readonly code?: Endpoint9_6Request["payload"]["code"]
|
||||
}
|
||||
const Endpoint9_5 = (raw: RawClient["server.integration"]) => (input: Endpoint9_5Input) =>
|
||||
const Endpoint9_6 = (raw: RawClient["server.integration"]) => (input: Endpoint9_6Input) =>
|
||||
raw["integration.attempt.complete"]({
|
||||
params: { attemptID: input["attemptID"] },
|
||||
query: { location: input["location"] },
|
||||
payload: { code: input["code"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint9_6Request = Parameters<RawClient["server.integration"]["integration.attempt.cancel"]>[0]
|
||||
type Endpoint9_6Input = {
|
||||
readonly attemptID: Endpoint9_6Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_6Request["query"]["location"]
|
||||
type Endpoint9_7Request = Parameters<RawClient["server.integration"]["integration.attempt.cancel"]>[0]
|
||||
type Endpoint9_7Input = {
|
||||
readonly attemptID: Endpoint9_7Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint9_7Request["query"]["location"]
|
||||
}
|
||||
const Endpoint9_6 = (raw: RawClient["server.integration"]) => (input: Endpoint9_6Input) =>
|
||||
const Endpoint9_7 = (raw: RawClient["server.integration"]) => (input: Endpoint9_7Input) =>
|
||||
raw["integration.attempt.cancel"]({
|
||||
params: { attemptID: input["attemptID"] },
|
||||
query: { location: input["location"] },
|
||||
|
|
@ -504,11 +517,12 @@ const Endpoint9_6 = (raw: RawClient["server.integration"]) => (input: Endpoint9_
|
|||
const adaptGroup9 = (raw: RawClient["server.integration"]) => ({
|
||||
list: Endpoint9_0(raw),
|
||||
get: Endpoint9_1(raw),
|
||||
connectKey: Endpoint9_2(raw),
|
||||
connectOauth: Endpoint9_3(raw),
|
||||
attemptStatus: Endpoint9_4(raw),
|
||||
attemptComplete: Endpoint9_5(raw),
|
||||
attemptCancel: Endpoint9_6(raw),
|
||||
selectCapability: Endpoint9_2(raw),
|
||||
connectKey: Endpoint9_3(raw),
|
||||
connectOauth: Endpoint9_4(raw),
|
||||
attemptStatus: Endpoint9_5(raw),
|
||||
attemptComplete: Endpoint9_6(raw),
|
||||
attemptCancel: Endpoint9_7(raw),
|
||||
})
|
||||
|
||||
type Endpoint10_0Request = Parameters<RawClient["server.mcp"]["mcp.list"]>[0]
|
||||
|
|
|
|||
|
|
@ -73,6 +73,8 @@ import type {
|
|||
IntegrationListOutput,
|
||||
IntegrationGetInput,
|
||||
IntegrationGetOutput,
|
||||
IntegrationSelectCapabilityInput,
|
||||
IntegrationSelectCapabilityOutput,
|
||||
IntegrationConnectKeyInput,
|
||||
IntegrationConnectKeyOutput,
|
||||
IntegrationConnectOauthInput,
|
||||
|
|
@ -794,6 +796,19 @@ export function make(options: ClientOptions) {
|
|||
},
|
||||
requestOptions,
|
||||
),
|
||||
selectCapability: (input: IntegrationSelectCapabilityInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationSelectCapabilityOutput>(
|
||||
{
|
||||
method: "POST",
|
||||
path: `/api/integration/${encodeURIComponent(input.integrationID)}/capability`,
|
||||
query: { location: input["location"] },
|
||||
body: { capability: input["capability"] },
|
||||
successStatus: 204,
|
||||
declaredStatuses: [400, 401],
|
||||
empty: true,
|
||||
},
|
||||
requestOptions,
|
||||
),
|
||||
connectKey: (input: IntegrationConnectKeyInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationConnectKeyOutput>(
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2240,6 +2240,11 @@ export type IntegrationListOutput = {
|
|||
| { readonly type: "key"; readonly label?: string }
|
||||
| { readonly type: "env"; readonly names: ReadonlyArray<string> }
|
||||
>
|
||||
readonly capabilities: ReadonlyArray<{
|
||||
readonly type: "search"
|
||||
readonly connection: "optional" | "required"
|
||||
readonly selected: boolean
|
||||
}>
|
||||
readonly connections: ReadonlyArray<
|
||||
| { readonly type: "credential"; readonly id: string; readonly label: string }
|
||||
| { readonly type: "env"; readonly name: string }
|
||||
|
|
@ -2292,6 +2297,11 @@ export type IntegrationGetOutput = {
|
|||
| { readonly type: "key"; readonly label?: string }
|
||||
| { readonly type: "env"; readonly names: ReadonlyArray<string> }
|
||||
>
|
||||
readonly capabilities: ReadonlyArray<{
|
||||
readonly type: "search"
|
||||
readonly connection: "optional" | "required"
|
||||
readonly selected: boolean
|
||||
}>
|
||||
readonly connections: ReadonlyArray<
|
||||
| { readonly type: "credential"; readonly id: string; readonly label: string }
|
||||
| { readonly type: "env"; readonly name: string }
|
||||
|
|
@ -2299,6 +2309,16 @@ export type IntegrationGetOutput = {
|
|||
} | null
|
||||
}
|
||||
|
||||
export type IntegrationSelectCapabilityInput = {
|
||||
readonly integrationID: { readonly integrationID: string }["integrationID"]
|
||||
readonly location?: {
|
||||
readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined
|
||||
}["location"]
|
||||
readonly capability: { readonly capability: "search" }["capability"]
|
||||
}
|
||||
|
||||
export type IntegrationSelectCapabilityOutput = void
|
||||
|
||||
export type IntegrationConnectKeyInput = {
|
||||
readonly integrationID: { readonly integrationID: string }["integrationID"]
|
||||
readonly location?: {
|
||||
|
|
@ -2604,6 +2624,14 @@ export type FormListRequestsOutput = {
|
|||
readonly mode: "url"
|
||||
readonly url: string
|
||||
}
|
||||
| {
|
||||
readonly id: string
|
||||
readonly sessionID: string
|
||||
readonly title?: string
|
||||
readonly metadata?: { readonly [x: string]: JsonValue }
|
||||
readonly mode: "integration"
|
||||
readonly integrationID: string
|
||||
}
|
||||
>
|
||||
}
|
||||
|
||||
|
|
@ -2716,6 +2744,14 @@ export type FormListOutput = {
|
|||
readonly mode: "url"
|
||||
readonly url: string
|
||||
}
|
||||
| {
|
||||
readonly id: string
|
||||
readonly sessionID: string
|
||||
readonly title?: string
|
||||
readonly metadata?: { readonly [x: string]: JsonValue }
|
||||
readonly mode: "integration"
|
||||
readonly integrationID: string
|
||||
}
|
||||
>
|
||||
}["data"]
|
||||
|
||||
|
|
@ -3412,6 +3448,14 @@ export type FormCreateOutput = {
|
|||
readonly mode: "url"
|
||||
readonly url: string
|
||||
}
|
||||
| {
|
||||
readonly id: string
|
||||
readonly sessionID: string
|
||||
readonly title?: string
|
||||
readonly metadata?: { readonly [x: string]: JsonValue }
|
||||
readonly mode: "integration"
|
||||
readonly integrationID: string
|
||||
}
|
||||
}["data"]
|
||||
|
||||
export type FormGetInput = {
|
||||
|
|
@ -3526,6 +3570,14 @@ export type FormGetOutput = {
|
|||
readonly mode: "url"
|
||||
readonly url: string
|
||||
}
|
||||
| {
|
||||
readonly id: string
|
||||
readonly sessionID: string
|
||||
readonly title?: string
|
||||
readonly metadata?: { readonly [x: string]: JsonValue }
|
||||
readonly mode: "integration"
|
||||
readonly integrationID: string
|
||||
}
|
||||
}["data"]
|
||||
|
||||
export type FormStateInput = {
|
||||
|
|
@ -5272,6 +5324,14 @@ export type EventSubscribeOutput =
|
|||
readonly mode: "url"
|
||||
readonly url: string
|
||||
}
|
||||
| {
|
||||
readonly id: string
|
||||
readonly sessionID: string
|
||||
readonly title?: string
|
||||
readonly metadata?: { readonly [x: string]: unknown }
|
||||
readonly mode: "integration"
|
||||
readonly integrationID: string
|
||||
}
|
||||
}
|
||||
}
|
||||
| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue