feat(server): add form routes (#35099)
Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com>
This commit is contained in:
parent
3ce5e9800d
commit
d9bf30fc22
16 changed files with 3080 additions and 436 deletions
|
|
@ -76,6 +76,8 @@ import type {
|
|||
FindTextResponses,
|
||||
FormatterStatusErrors,
|
||||
FormatterStatusResponses,
|
||||
FormCreatePayload2,
|
||||
FormReply2,
|
||||
GlobalConfigGetErrors,
|
||||
GlobalConfigGetResponses,
|
||||
GlobalConfigUpdateErrors,
|
||||
|
|
@ -278,6 +280,8 @@ import type {
|
|||
V2EventChangesResponses,
|
||||
V2EventSubscribeErrors,
|
||||
V2EventSubscribeResponses,
|
||||
V2FormRequestListErrors,
|
||||
V2FormRequestListResponses,
|
||||
V2FsFindErrors,
|
||||
V2FsFindResponses,
|
||||
V2FsListErrors,
|
||||
|
|
@ -370,6 +374,18 @@ import type {
|
|||
V2SessionCreateResponses,
|
||||
V2SessionForkErrors,
|
||||
V2SessionForkResponses,
|
||||
V2SessionFormCancelErrors,
|
||||
V2SessionFormCancelResponses,
|
||||
V2SessionFormCreateErrors,
|
||||
V2SessionFormCreateResponses,
|
||||
V2SessionFormGetErrors,
|
||||
V2SessionFormGetResponses,
|
||||
V2SessionFormListErrors,
|
||||
V2SessionFormListResponses,
|
||||
V2SessionFormReplyErrors,
|
||||
V2SessionFormReplyResponses,
|
||||
V2SessionFormStateErrors,
|
||||
V2SessionFormStateResponses,
|
||||
V2SessionGetErrors,
|
||||
V2SessionGetResponses,
|
||||
V2SessionInterruptErrors,
|
||||
|
|
@ -5342,6 +5358,193 @@ export class Context extends HeyApiClient {
|
|||
}
|
||||
}
|
||||
|
||||
export class Form extends HeyApiClient {
|
||||
/**
|
||||
* List session forms
|
||||
*
|
||||
* Retrieve pending forms for a session.
|
||||
*/
|
||||
public list<ThrowOnError extends boolean = false>(
|
||||
parameters: {
|
||||
sessionID: string
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "sessionID" }] }])
|
||||
return (options?.client ?? this.client).get<V2SessionFormListResponses, V2SessionFormListErrors, ThrowOnError>({
|
||||
url: "/api/session/{sessionID}/form",
|
||||
...options,
|
||||
...params,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Create session form
|
||||
*
|
||||
* Create a form for a session.
|
||||
*/
|
||||
public create<ThrowOnError extends boolean = false>(
|
||||
parameters: {
|
||||
sessionID: string
|
||||
formCreatePayload: FormCreatePayload2
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams(
|
||||
[parameters],
|
||||
[
|
||||
{
|
||||
args: [
|
||||
{ in: "path", key: "sessionID" },
|
||||
{ key: "formCreatePayload", map: "body" },
|
||||
],
|
||||
},
|
||||
],
|
||||
)
|
||||
return (options?.client ?? this.client).post<V2SessionFormCreateResponses, V2SessionFormCreateErrors, ThrowOnError>(
|
||||
{
|
||||
url: "/api/session/{sessionID}/form",
|
||||
...options,
|
||||
...params,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
...options?.headers,
|
||||
...params.headers,
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Get session form
|
||||
*
|
||||
* Retrieve a form for a session.
|
||||
*/
|
||||
public get<ThrowOnError extends boolean = false>(
|
||||
parameters: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams(
|
||||
[parameters],
|
||||
[
|
||||
{
|
||||
args: [
|
||||
{ in: "path", key: "sessionID" },
|
||||
{ in: "path", key: "formID" },
|
||||
],
|
||||
},
|
||||
],
|
||||
)
|
||||
return (options?.client ?? this.client).get<V2SessionFormGetResponses, V2SessionFormGetErrors, ThrowOnError>({
|
||||
url: "/api/session/{sessionID}/form/{formID}",
|
||||
...options,
|
||||
...params,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Get form state
|
||||
*
|
||||
* Retrieve the current state for a form.
|
||||
*/
|
||||
public state<ThrowOnError extends boolean = false>(
|
||||
parameters: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams(
|
||||
[parameters],
|
||||
[
|
||||
{
|
||||
args: [
|
||||
{ in: "path", key: "sessionID" },
|
||||
{ in: "path", key: "formID" },
|
||||
],
|
||||
},
|
||||
],
|
||||
)
|
||||
return (options?.client ?? this.client).get<V2SessionFormStateResponses, V2SessionFormStateErrors, ThrowOnError>({
|
||||
url: "/api/session/{sessionID}/form/{formID}/state",
|
||||
...options,
|
||||
...params,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Reply to form
|
||||
*
|
||||
* Submit an answer to a pending form.
|
||||
*/
|
||||
public reply<ThrowOnError extends boolean = false>(
|
||||
parameters: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
formReply: FormReply2
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams(
|
||||
[parameters],
|
||||
[
|
||||
{
|
||||
args: [
|
||||
{ in: "path", key: "sessionID" },
|
||||
{ in: "path", key: "formID" },
|
||||
{ key: "formReply", map: "body" },
|
||||
],
|
||||
},
|
||||
],
|
||||
)
|
||||
return (options?.client ?? this.client).post<V2SessionFormReplyResponses, V2SessionFormReplyErrors, ThrowOnError>({
|
||||
url: "/api/session/{sessionID}/form/{formID}/reply",
|
||||
...options,
|
||||
...params,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
...options?.headers,
|
||||
...params.headers,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel form
|
||||
*
|
||||
* Cancel a pending form.
|
||||
*/
|
||||
public cancel<ThrowOnError extends boolean = false>(
|
||||
parameters: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams(
|
||||
[parameters],
|
||||
[
|
||||
{
|
||||
args: [
|
||||
{ in: "path", key: "sessionID" },
|
||||
{ in: "path", key: "formID" },
|
||||
],
|
||||
},
|
||||
],
|
||||
)
|
||||
return (options?.client ?? this.client).post<V2SessionFormCancelResponses, V2SessionFormCancelErrors, ThrowOnError>(
|
||||
{
|
||||
url: "/api/session/{sessionID}/form/{formID}/cancel",
|
||||
...options,
|
||||
...params,
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export class Permission2 extends HeyApiClient {
|
||||
/**
|
||||
* List session permission requests
|
||||
|
|
@ -6235,6 +6438,11 @@ export class Session3 extends HeyApiClient {
|
|||
return (this._context ??= new Context({ client: this.client }))
|
||||
}
|
||||
|
||||
private _form?: Form
|
||||
get form(): Form {
|
||||
return (this._form ??= new Form({ client: this.client }))
|
||||
}
|
||||
|
||||
private _permission?: Permission2
|
||||
get permission(): Permission2 {
|
||||
return (this._permission ??= new Permission2({ client: this.client }))
|
||||
|
|
@ -6839,6 +7047,37 @@ export class Project2 extends HeyApiClient {
|
|||
}
|
||||
|
||||
export class Request extends HeyApiClient {
|
||||
/**
|
||||
* List pending form requests
|
||||
*
|
||||
* Retrieve pending forms for a location.
|
||||
*/
|
||||
public list<ThrowOnError extends boolean = false>(
|
||||
parameters?: {
|
||||
location?: {
|
||||
directory?: string | null
|
||||
workspace?: string | null
|
||||
} | null
|
||||
},
|
||||
options?: Options<never, ThrowOnError>,
|
||||
) {
|
||||
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "location" }] }])
|
||||
return (options?.client ?? this.client).get<V2FormRequestListResponses, V2FormRequestListErrors, ThrowOnError>({
|
||||
url: "/api/form/request",
|
||||
...options,
|
||||
...params,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export class Form2 extends HeyApiClient {
|
||||
private _request?: Request
|
||||
get request(): Request {
|
||||
return (this._request ??= new Request({ client: this.client }))
|
||||
}
|
||||
}
|
||||
|
||||
export class Request2 extends HeyApiClient {
|
||||
/**
|
||||
* List pending permission requests
|
||||
*
|
||||
|
|
@ -6915,9 +7154,9 @@ export class Saved extends HeyApiClient {
|
|||
}
|
||||
|
||||
export class Permission3 extends HeyApiClient {
|
||||
private _request?: Request
|
||||
get request(): Request {
|
||||
return (this._request ??= new Request({ client: this.client }))
|
||||
private _request?: Request2
|
||||
get request(): Request2 {
|
||||
return (this._request ??= new Request2({ client: this.client }))
|
||||
}
|
||||
|
||||
private _saved?: Saved
|
||||
|
|
@ -7519,7 +7758,7 @@ export class Shell extends HeyApiClient {
|
|||
}
|
||||
}
|
||||
|
||||
export class Request2 extends HeyApiClient {
|
||||
export class Request3 extends HeyApiClient {
|
||||
/**
|
||||
* List pending question requests
|
||||
*
|
||||
|
|
@ -7548,9 +7787,9 @@ export class Request2 extends HeyApiClient {
|
|||
}
|
||||
|
||||
export class Question3 extends HeyApiClient {
|
||||
private _request?: Request2
|
||||
get request(): Request2 {
|
||||
return (this._request ??= new Request2({ client: this.client }))
|
||||
private _request?: Request3
|
||||
get request(): Request3 {
|
||||
return (this._request ??= new Request3({ client: this.client }))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -7755,6 +7994,11 @@ export class V2 extends HeyApiClient {
|
|||
return (this._project ??= new Project2({ client: this.client }))
|
||||
}
|
||||
|
||||
private _form?: Form2
|
||||
get form(): Form2 {
|
||||
return (this._form ??= new Form2({ client: this.client }))
|
||||
}
|
||||
|
||||
private _permission?: Permission3
|
||||
get permission(): Permission3 {
|
||||
return (this._permission ??= new Permission3({ client: this.client }))
|
||||
|
|
|
|||
|
|
@ -77,6 +77,9 @@ export type Event =
|
|||
| EventQuestionV2Asked
|
||||
| EventQuestionV2Replied
|
||||
| EventQuestionV2Rejected
|
||||
| EventFormCreated
|
||||
| EventFormReplied
|
||||
| EventFormCancelled
|
||||
| EventTodoUpdated
|
||||
| EventLspUpdated
|
||||
| EventPermissionAsked
|
||||
|
|
@ -1475,6 +1478,30 @@ export type GlobalEvent = {
|
|||
requestID: string
|
||||
}
|
||||
}
|
||||
| {
|
||||
id: string
|
||||
type: "form.created"
|
||||
properties: {
|
||||
form: FormFormInfo | FormUrlInfo
|
||||
}
|
||||
}
|
||||
| {
|
||||
id: string
|
||||
type: "form.replied"
|
||||
properties: {
|
||||
id: string
|
||||
sessionID: string
|
||||
answer: FormAnswer
|
||||
}
|
||||
}
|
||||
| {
|
||||
id: string
|
||||
type: "form.cancelled"
|
||||
properties: {
|
||||
id: string
|
||||
sessionID: string
|
||||
}
|
||||
}
|
||||
| {
|
||||
id: string
|
||||
type: "todo.updated"
|
||||
|
|
@ -2941,6 +2968,24 @@ export type ProviderNotFoundError = {
|
|||
message: string
|
||||
}
|
||||
|
||||
export type FormNotFoundError = {
|
||||
_tag: "FormNotFoundError"
|
||||
id: string
|
||||
message: string
|
||||
}
|
||||
|
||||
export type FormAlreadySettledError = {
|
||||
_tag: "FormAlreadySettledError"
|
||||
id: string
|
||||
message: string
|
||||
}
|
||||
|
||||
export type FormInvalidAnswerError = {
|
||||
_tag: "FormInvalidAnswerError"
|
||||
id: string
|
||||
message: string
|
||||
}
|
||||
|
||||
export type OutputFormat1 =
|
||||
| {
|
||||
type: "text"
|
||||
|
|
@ -3097,6 +3142,9 @@ export type V2Event =
|
|||
| QuestionV2Asked
|
||||
| QuestionV2Replied
|
||||
| QuestionV2Rejected
|
||||
| FormCreated
|
||||
| FormReplied
|
||||
| FormCancelled
|
||||
| TodoUpdated
|
||||
| LspUpdated
|
||||
| PermissionAsked
|
||||
|
|
@ -3370,6 +3418,121 @@ export type QuestionV2Tool = {
|
|||
|
||||
export type QuestionV2Answer = Array<string>
|
||||
|
||||
export type FormMetadata = {
|
||||
[key: string]: unknown
|
||||
}
|
||||
|
||||
export type FormWhen = {
|
||||
key: string
|
||||
op: "eq" | "neq"
|
||||
value: string
|
||||
}
|
||||
|
||||
export type FormOption = {
|
||||
value: string
|
||||
label: string
|
||||
description?: string
|
||||
}
|
||||
|
||||
export type FormStringField = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "string"
|
||||
format?: "email" | "uri" | "date" | "date-time"
|
||||
minLength?: number
|
||||
maxLength?: number
|
||||
pattern?: string
|
||||
placeholder?: string
|
||||
default?: string
|
||||
options?: Array<FormOption>
|
||||
custom?: boolean
|
||||
}
|
||||
|
||||
export type FormNumberField = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "number"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
}
|
||||
|
||||
export type FormIntegerField = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "integer"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
}
|
||||
|
||||
export type FormBooleanField = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "boolean"
|
||||
default?: boolean
|
||||
}
|
||||
|
||||
export type FormMultiselectField = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "multiselect"
|
||||
options: Array<FormOption>
|
||||
minItems?: number
|
||||
maxItems?: number
|
||||
custom?: boolean
|
||||
default?: Array<string>
|
||||
}
|
||||
|
||||
export type FormFormInfo = {
|
||||
id: string
|
||||
sessionID: string
|
||||
title?: string
|
||||
metadata?: FormMetadata
|
||||
mode: "form"
|
||||
fields: Array<FormStringField | FormNumberField | FormIntegerField | FormBooleanField | FormMultiselectField>
|
||||
}
|
||||
|
||||
export type FormUrlInfo = {
|
||||
id: string
|
||||
sessionID: string
|
||||
title?: string
|
||||
metadata?: FormMetadata
|
||||
mode: "url"
|
||||
url: string
|
||||
}
|
||||
|
||||
export type FormValue =
|
||||
| string
|
||||
| number
|
||||
| "NaN"
|
||||
| "Infinity"
|
||||
| "-Infinity"
|
||||
| "Infinity"
|
||||
| "-Infinity"
|
||||
| "NaN"
|
||||
| boolean
|
||||
| Array<string>
|
||||
|
||||
export type FormAnswer = {
|
||||
[key: string]: FormValue
|
||||
}
|
||||
|
||||
export type ProjectVcs = "git"
|
||||
|
||||
export type ProjectIcon = {
|
||||
|
|
@ -5391,6 +5554,31 @@ export type ProjectCurrent = {
|
|||
directory: string
|
||||
}
|
||||
|
||||
export type FormCreatePayload = {
|
||||
id?: string
|
||||
title?: string
|
||||
metadata?: FormMetadata
|
||||
mode: "form" | "url"
|
||||
fields?: Array<FormStringField | FormNumberField | FormIntegerField | FormBooleanField | FormMultiselectField>
|
||||
url?: string
|
||||
}
|
||||
|
||||
export type FormState =
|
||||
| {
|
||||
status: "pending"
|
||||
}
|
||||
| {
|
||||
status: "answered"
|
||||
answer: FormAnswer
|
||||
}
|
||||
| {
|
||||
status: "cancelled"
|
||||
}
|
||||
|
||||
export type FormReply = {
|
||||
answer: FormAnswer
|
||||
}
|
||||
|
||||
export type PermissionV2Request = {
|
||||
id: string
|
||||
sessionID: string
|
||||
|
|
@ -6194,6 +6382,86 @@ export type QuestionV2Rejected = {
|
|||
}
|
||||
}
|
||||
|
||||
export type FormNumberField1 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "number"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
}
|
||||
|
||||
export type FormIntegerField1 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "integer"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
}
|
||||
|
||||
export type FormCreated = {
|
||||
id: string
|
||||
metadata?: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
type: "form.created"
|
||||
durable?: {
|
||||
aggregateID: string
|
||||
seq: number
|
||||
version: number
|
||||
}
|
||||
location?: LocationRef
|
||||
data: {
|
||||
form: FormFormInfo | FormUrlInfo
|
||||
}
|
||||
}
|
||||
|
||||
export type FormValue1 = string | number | "NaN" | "Infinity" | "-Infinity" | boolean | Array<string>
|
||||
|
||||
export type FormReplied = {
|
||||
id: string
|
||||
metadata?: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
type: "form.replied"
|
||||
durable?: {
|
||||
aggregateID: string
|
||||
seq: number
|
||||
version: number
|
||||
}
|
||||
location?: LocationRef
|
||||
data: {
|
||||
id: string
|
||||
sessionID: string
|
||||
answer: FormAnswer
|
||||
}
|
||||
}
|
||||
|
||||
export type FormCancelled = {
|
||||
id: string
|
||||
metadata?: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
type: "form.cancelled"
|
||||
durable?: {
|
||||
aggregateID: string
|
||||
seq: number
|
||||
version: number
|
||||
}
|
||||
location?: LocationRef
|
||||
data: {
|
||||
id: string
|
||||
sessionID: string
|
||||
}
|
||||
}
|
||||
|
||||
export type TodoUpdated = {
|
||||
id: string
|
||||
metadata?: {
|
||||
|
|
@ -7505,6 +7773,57 @@ export type EventQuestionV2Rejected = {
|
|||
}
|
||||
}
|
||||
|
||||
export type FormNumberField2 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "number"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
}
|
||||
|
||||
export type FormIntegerField2 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen
|
||||
type: "integer"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
}
|
||||
|
||||
export type EventFormCreated = {
|
||||
id: string
|
||||
type: "form.created"
|
||||
properties: {
|
||||
form: FormFormInfo | FormUrlInfo
|
||||
}
|
||||
}
|
||||
|
||||
export type EventFormReplied = {
|
||||
id: string
|
||||
type: "form.replied"
|
||||
properties: {
|
||||
id: string
|
||||
sessionID: string
|
||||
answer: FormAnswer
|
||||
}
|
||||
}
|
||||
|
||||
export type EventFormCancelled = {
|
||||
id: string
|
||||
type: "form.cancelled"
|
||||
properties: {
|
||||
id: string
|
||||
sessionID: string
|
||||
}
|
||||
}
|
||||
|
||||
export type EventTodoUpdated = {
|
||||
id: string
|
||||
type: "todo.updated"
|
||||
|
|
@ -9333,6 +9652,166 @@ export type ProjectDirectory2 = {
|
|||
|
||||
export type ProjectDirectories2 = Array<ProjectDirectory2>
|
||||
|
||||
export type FormMetadata2 = {
|
||||
[key: string]: unknown
|
||||
}
|
||||
|
||||
export type FormWhen2 = {
|
||||
key: string
|
||||
op: "eq" | "neq"
|
||||
value: string
|
||||
}
|
||||
|
||||
export type FormOption2 = {
|
||||
value: string
|
||||
label: string
|
||||
description?: string
|
||||
}
|
||||
|
||||
export type FormStringField2 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "string"
|
||||
format?: "email" | "uri" | "date" | "date-time"
|
||||
minLength?: number
|
||||
maxLength?: number
|
||||
pattern?: string
|
||||
placeholder?: string
|
||||
default?: string
|
||||
options?: Array<FormOption2>
|
||||
custom?: boolean
|
||||
}
|
||||
|
||||
export type FormNumberField3 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "number"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
}
|
||||
|
||||
export type FormIntegerField3 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "integer"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
|
||||
}
|
||||
|
||||
export type FormBooleanField2 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "boolean"
|
||||
default?: boolean
|
||||
}
|
||||
|
||||
export type FormMultiselectField2 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "multiselect"
|
||||
options: Array<FormOption2>
|
||||
minItems?: number
|
||||
maxItems?: number
|
||||
custom?: boolean
|
||||
default?: Array<string>
|
||||
}
|
||||
|
||||
export type FormFormInfo2 = {
|
||||
id: string
|
||||
sessionID: string
|
||||
title?: string
|
||||
metadata?: FormMetadata2
|
||||
mode: "form"
|
||||
fields: Array<FormStringField2 | FormNumberField3 | FormIntegerField3 | FormBooleanField2 | FormMultiselectField2>
|
||||
}
|
||||
|
||||
export type FormUrlInfo2 = {
|
||||
id: string
|
||||
sessionID: string
|
||||
title?: string
|
||||
metadata?: FormMetadata2
|
||||
mode: "url"
|
||||
url: string
|
||||
}
|
||||
|
||||
export type FormCreatePayload2 = {
|
||||
id?: string | null
|
||||
title?: string
|
||||
metadata?: FormMetadata2
|
||||
mode: "form" | "url"
|
||||
fields?: Array<
|
||||
FormStringField2 | FormNumberField3 | FormIntegerField3 | FormBooleanField2 | FormMultiselectField2
|
||||
> | null
|
||||
url?: string | null
|
||||
}
|
||||
|
||||
export type FormNotFoundErrorV2 = {
|
||||
_tag: "FormNotFoundError"
|
||||
id: string
|
||||
message: string
|
||||
}
|
||||
|
||||
export type FormValue2 =
|
||||
| string
|
||||
| number
|
||||
| "NaN"
|
||||
| "Infinity"
|
||||
| "-Infinity"
|
||||
| "Infinity"
|
||||
| "-Infinity"
|
||||
| "NaN"
|
||||
| boolean
|
||||
| Array<string>
|
||||
|
||||
export type FormAnswer2 = {
|
||||
[key: string]: FormValue2
|
||||
}
|
||||
|
||||
export type FormState2 =
|
||||
| {
|
||||
status: "pending"
|
||||
}
|
||||
| {
|
||||
status: "answered"
|
||||
answer: FormAnswer2
|
||||
}
|
||||
| {
|
||||
status: "cancelled"
|
||||
}
|
||||
|
||||
export type FormReply2 = {
|
||||
answer: FormAnswer2
|
||||
}
|
||||
|
||||
export type FormAlreadySettledErrorV2 = {
|
||||
_tag: "FormAlreadySettledError"
|
||||
id: string
|
||||
message: string
|
||||
}
|
||||
|
||||
export type FormInvalidAnswerErrorV2 = {
|
||||
_tag: "FormInvalidAnswerError"
|
||||
id: string
|
||||
message: string
|
||||
}
|
||||
|
||||
export type PermissionV2Source2 = {
|
||||
type: "tool"
|
||||
messageID: string
|
||||
|
|
@ -10619,6 +11098,112 @@ export type QuestionV2Rejected2 = {
|
|||
}
|
||||
}
|
||||
|
||||
export type FormMetadata1 = {
|
||||
[key: string]: unknown
|
||||
}
|
||||
|
||||
export type FormNumberField12 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "number"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
}
|
||||
|
||||
export type FormIntegerField12 = {
|
||||
key: string
|
||||
title?: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
when?: FormWhen2
|
||||
type: "integer"
|
||||
minimum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
maximum?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
default?: number | "NaN" | "Infinity" | "-Infinity"
|
||||
}
|
||||
|
||||
export type FormFormInfo1 = {
|
||||
id: string
|
||||
sessionID: string
|
||||
title?: string
|
||||
metadata?: FormMetadata1
|
||||
mode: "form"
|
||||
fields: Array<FormStringField2 | FormNumberField12 | FormIntegerField12 | FormBooleanField2 | FormMultiselectField2>
|
||||
}
|
||||
|
||||
export type FormUrlInfo1 = {
|
||||
id: string
|
||||
sessionID: string
|
||||
title?: string
|
||||
metadata?: FormMetadata1
|
||||
mode: "url"
|
||||
url: string
|
||||
}
|
||||
|
||||
export type FormCreated2 = {
|
||||
id: string
|
||||
metadata?: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
type: "form.created"
|
||||
durable?: {
|
||||
aggregateID: string
|
||||
seq: number
|
||||
version: number
|
||||
}
|
||||
location?: LocationRef2
|
||||
data: {
|
||||
form: FormFormInfo1 | FormUrlInfo1
|
||||
}
|
||||
}
|
||||
|
||||
export type FormValue12 = string | number | "NaN" | "Infinity" | "-Infinity" | boolean | Array<string>
|
||||
|
||||
export type FormAnswer1 = {
|
||||
[key: string]: FormValue12
|
||||
}
|
||||
|
||||
export type FormReplied2 = {
|
||||
id: string
|
||||
metadata?: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
type: "form.replied"
|
||||
durable?: {
|
||||
aggregateID: string
|
||||
seq: number
|
||||
version: number
|
||||
}
|
||||
location?: LocationRef2
|
||||
data: {
|
||||
id: string
|
||||
sessionID: string
|
||||
answer: FormAnswer1
|
||||
}
|
||||
}
|
||||
|
||||
export type FormCancelled2 = {
|
||||
id: string
|
||||
metadata?: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
type: "form.cancelled"
|
||||
durable?: {
|
||||
aggregateID: string
|
||||
seq: number
|
||||
version: number
|
||||
}
|
||||
location?: LocationRef2
|
||||
data: {
|
||||
id: string
|
||||
sessionID: string
|
||||
}
|
||||
}
|
||||
|
||||
export type TodoV2 = {
|
||||
/**
|
||||
* Brief description of the task
|
||||
|
|
@ -11131,6 +11716,9 @@ export type V2EventV2 =
|
|||
| QuestionV2Asked2
|
||||
| QuestionV2Replied2
|
||||
| QuestionV2Rejected2
|
||||
| FormCreated2
|
||||
| FormReplied2
|
||||
| FormCancelled2
|
||||
| TodoUpdated2
|
||||
| SessionStatusV22
|
||||
| SessionIdle2
|
||||
|
|
@ -17268,6 +17856,277 @@ export type V2ProjectDirectoriesResponses = {
|
|||
|
||||
export type V2ProjectDirectoriesResponse = V2ProjectDirectoriesResponses[keyof V2ProjectDirectoriesResponses]
|
||||
|
||||
export type V2FormRequestListData = {
|
||||
body?: never
|
||||
path?: never
|
||||
query?: {
|
||||
location?: {
|
||||
directory?: string | null
|
||||
workspace?: string | null
|
||||
} | null
|
||||
}
|
||||
url: "/api/form/request"
|
||||
}
|
||||
|
||||
export type V2FormRequestListErrors = {
|
||||
/**
|
||||
* InvalidRequestError
|
||||
*/
|
||||
400: InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
}
|
||||
|
||||
export type V2FormRequestListError = V2FormRequestListErrors[keyof V2FormRequestListErrors]
|
||||
|
||||
export type V2FormRequestListResponses = {
|
||||
/**
|
||||
* Success
|
||||
*/
|
||||
200: {
|
||||
location: LocationInfo2
|
||||
data: Array<FormFormInfo2 | FormUrlInfo2>
|
||||
}
|
||||
}
|
||||
|
||||
export type V2FormRequestListResponse = V2FormRequestListResponses[keyof V2FormRequestListResponses]
|
||||
|
||||
export type V2SessionFormListData = {
|
||||
body?: never
|
||||
path: {
|
||||
sessionID: string
|
||||
}
|
||||
query?: never
|
||||
url: "/api/session/{sessionID}/form"
|
||||
}
|
||||
|
||||
export type V2SessionFormListErrors = {
|
||||
/**
|
||||
* InvalidRequestError
|
||||
*/
|
||||
400: InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
/**
|
||||
* SessionNotFoundError
|
||||
*/
|
||||
404: SessionNotFoundErrorV2
|
||||
}
|
||||
|
||||
export type V2SessionFormListError = V2SessionFormListErrors[keyof V2SessionFormListErrors]
|
||||
|
||||
export type V2SessionFormListResponses = {
|
||||
/**
|
||||
* Success
|
||||
*/
|
||||
200: {
|
||||
data: Array<FormFormInfo2 | FormUrlInfo2>
|
||||
}
|
||||
}
|
||||
|
||||
export type V2SessionFormListResponse = V2SessionFormListResponses[keyof V2SessionFormListResponses]
|
||||
|
||||
export type V2SessionFormCreateData = {
|
||||
body: FormCreatePayload2
|
||||
path: {
|
||||
sessionID: string
|
||||
}
|
||||
query?: never
|
||||
url: "/api/session/{sessionID}/form"
|
||||
}
|
||||
|
||||
export type V2SessionFormCreateErrors = {
|
||||
/**
|
||||
* InvalidRequestError
|
||||
*/
|
||||
400: InvalidRequestError1 | InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
/**
|
||||
* SessionNotFoundError
|
||||
*/
|
||||
404: SessionNotFoundErrorV2
|
||||
/**
|
||||
* ConflictError
|
||||
*/
|
||||
409: ConflictErrorV2
|
||||
}
|
||||
|
||||
export type V2SessionFormCreateError = V2SessionFormCreateErrors[keyof V2SessionFormCreateErrors]
|
||||
|
||||
export type V2SessionFormCreateResponses = {
|
||||
/**
|
||||
* Success
|
||||
*/
|
||||
200: {
|
||||
data: FormFormInfo2 | FormUrlInfo2
|
||||
}
|
||||
}
|
||||
|
||||
export type V2SessionFormCreateResponse = V2SessionFormCreateResponses[keyof V2SessionFormCreateResponses]
|
||||
|
||||
export type V2SessionFormGetData = {
|
||||
body?: never
|
||||
path: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
}
|
||||
query?: never
|
||||
url: "/api/session/{sessionID}/form/{formID}"
|
||||
}
|
||||
|
||||
export type V2SessionFormGetErrors = {
|
||||
/**
|
||||
* InvalidRequestError
|
||||
*/
|
||||
400: InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
/**
|
||||
* SessionNotFoundError | FormNotFoundError
|
||||
*/
|
||||
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
|
||||
}
|
||||
|
||||
export type V2SessionFormGetError = V2SessionFormGetErrors[keyof V2SessionFormGetErrors]
|
||||
|
||||
export type V2SessionFormGetResponses = {
|
||||
/**
|
||||
* Success
|
||||
*/
|
||||
200: {
|
||||
data: FormFormInfo2 | FormUrlInfo2
|
||||
}
|
||||
}
|
||||
|
||||
export type V2SessionFormGetResponse = V2SessionFormGetResponses[keyof V2SessionFormGetResponses]
|
||||
|
||||
export type V2SessionFormStateData = {
|
||||
body?: never
|
||||
path: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
}
|
||||
query?: never
|
||||
url: "/api/session/{sessionID}/form/{formID}/state"
|
||||
}
|
||||
|
||||
export type V2SessionFormStateErrors = {
|
||||
/**
|
||||
* InvalidRequestError
|
||||
*/
|
||||
400: InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
/**
|
||||
* SessionNotFoundError | FormNotFoundError
|
||||
*/
|
||||
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
|
||||
}
|
||||
|
||||
export type V2SessionFormStateError = V2SessionFormStateErrors[keyof V2SessionFormStateErrors]
|
||||
|
||||
export type V2SessionFormStateResponses = {
|
||||
/**
|
||||
* Success
|
||||
*/
|
||||
200: {
|
||||
data: FormState2
|
||||
}
|
||||
}
|
||||
|
||||
export type V2SessionFormStateResponse = V2SessionFormStateResponses[keyof V2SessionFormStateResponses]
|
||||
|
||||
export type V2SessionFormReplyData = {
|
||||
body: FormReply2
|
||||
path: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
}
|
||||
query?: never
|
||||
url: "/api/session/{sessionID}/form/{formID}/reply"
|
||||
}
|
||||
|
||||
export type V2SessionFormReplyErrors = {
|
||||
/**
|
||||
* FormInvalidAnswerError | InvalidRequestError
|
||||
*/
|
||||
400: FormInvalidAnswerErrorV2 | InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
/**
|
||||
* SessionNotFoundError | FormNotFoundError
|
||||
*/
|
||||
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
|
||||
/**
|
||||
* FormAlreadySettledError
|
||||
*/
|
||||
409: FormAlreadySettledErrorV2
|
||||
}
|
||||
|
||||
export type V2SessionFormReplyError = V2SessionFormReplyErrors[keyof V2SessionFormReplyErrors]
|
||||
|
||||
export type V2SessionFormReplyResponses = {
|
||||
/**
|
||||
* <No Content>
|
||||
*/
|
||||
204: void
|
||||
}
|
||||
|
||||
export type V2SessionFormReplyResponse = V2SessionFormReplyResponses[keyof V2SessionFormReplyResponses]
|
||||
|
||||
export type V2SessionFormCancelData = {
|
||||
body?: never
|
||||
path: {
|
||||
sessionID: string
|
||||
formID: string
|
||||
}
|
||||
query?: never
|
||||
url: "/api/session/{sessionID}/form/{formID}/cancel"
|
||||
}
|
||||
|
||||
export type V2SessionFormCancelErrors = {
|
||||
/**
|
||||
* InvalidRequestError
|
||||
*/
|
||||
400: InvalidRequestErrorV2
|
||||
/**
|
||||
* UnauthorizedError
|
||||
*/
|
||||
401: UnauthorizedErrorV2
|
||||
/**
|
||||
* SessionNotFoundError | FormNotFoundError
|
||||
*/
|
||||
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
|
||||
/**
|
||||
* FormAlreadySettledError
|
||||
*/
|
||||
409: FormAlreadySettledErrorV2
|
||||
}
|
||||
|
||||
export type V2SessionFormCancelError = V2SessionFormCancelErrors[keyof V2SessionFormCancelErrors]
|
||||
|
||||
export type V2SessionFormCancelResponses = {
|
||||
/**
|
||||
* <No Content>
|
||||
*/
|
||||
204: void
|
||||
}
|
||||
|
||||
export type V2SessionFormCancelResponse = V2SessionFormCancelResponses[keyof V2SessionFormCancelResponses]
|
||||
|
||||
export type V2PermissionRequestListData = {
|
||||
body?: never
|
||||
path?: never
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue