docs: add TSDoc comments

old-agentic-v1^2
Philipp Burckhardt 2023-07-09 22:26:37 -04:00
rodzic 15a0c83cb9
commit e7b30853b6
4 zmienionych plików z 81 dodań i 7 usunięć

Wyświetl plik

@ -70,7 +70,7 @@ export class Agentic extends EventEmitter {
ky?: types.KyInstance
/**
* A task tracker or `false` to disable. By default, tasks will be tracked via the terminal.
* A task tracker or `false` to disable. By default, tasks will be tracked via the terminal (assuming `stderr` is a TTY).
*/
taskTracker?: TaskTracker | false
} = {}

Wyświetl plik

@ -42,27 +42,33 @@ type HumanFeedbackMechanismConstructor<
*/
export type HumanFeedbackOptions<T extends HumanFeedbackType, TOutput> = {
/**
* What type of feedback to request.
* What type of feedback to request. Default: `'confirm'`.
*
* Possible values:
*
* - `'confirm'`: The user is asked to confirm the generated output of the task.
* - `'select'`: The user is asked to select exactly one of the outputs to keep (assumes output is an array).
* - `'multiselect'`: The user is asked to select any number of outputs to keep (assumes output is an array).
*/
type?: T
/**
* Whether the user can abort the process.
* Whether the user can abort the process. Default: `false`.
*/
abort?: boolean
/**
* Whether the user can edit the output.
* Whether the user can edit the output. Default: `false`.
*/
editing?: boolean
/**
* Whether the user can add free-form text annotations.
* Whether the user can add free-form text annotations. Default: `false`.
*/
annotations?: boolean
/**
* The human feedback mechanism to use for this task.
* The human feedback mechanism to use for this task. By default, human feedback is requested via the CLI.
*/
mechanism?: HumanFeedbackMechanismConstructor<T, TOutput>
@ -72,7 +78,7 @@ export type HumanFeedbackOptions<T extends HumanFeedbackType, TOutput> = {
outputLabel?: string
/**
* Timeout in milliseconds after which waiting for any user input is aborted (default: +Infinity, i.e. no timeout.)
* Timeout in milliseconds after which waiting for any user input is aborted. Default: `+Infinity`, i.e., no timeout.
*/
timeoutMs?: number
}

Wyświetl plik

@ -85,6 +85,9 @@ export abstract class BaseTask<
this._agentic = agentic
}
/**
* Unique identifier for the task.
*/
public get id(): string {
return this._id
}
@ -93,18 +96,34 @@ export abstract class BaseTask<
return this._agentic.logger
}
/**
* Zod schema for the task's input.
*/
public abstract get inputSchema(): ZodType<TInput>
/**
* Zod schema for the task's output.
*/
public abstract get outputSchema(): ZodType<TOutput>
/**
* Name of the task for use by language model.
*/
public get nameForModel(): string {
const name = this.constructor.name
return name[0].toLowerCase() + name.slice(1)
}
/**
* Human-readable name of the task.
*/
public get nameForHuman(): string {
return this.constructor.name
}
/**
* Task description for use by language model.
*/
public get descForModel(): string {
return ''
}
@ -217,11 +236,17 @@ export abstract class BaseTask<
return this
}
/**
* Sets retry configuration for this task.
*/
public retryConfig(retryConfig: types.RetryConfig): this {
this._retryConfig = retryConfig
return this
}
/**
* Sets cache configuration for this task.
*/
public cacheConfig(cacheConfig: types.CacheConfig<TInput, TOutput>): this {
this._cacheConfig = cacheConfig
return this

Wyświetl plik

@ -36,11 +36,29 @@ export type SafeParsedData<T extends ZodTypeAny> = T extends ZodTypeAny
: never
export interface BaseTaskOptions {
/**
* Agentic instance
*/
agentic?: Agentic
/**
* Number of milliseconds to wait before timing out.
*/
timeoutMs?: number
/**
* Configuration for retrying failed requests.
*/
retryConfig?: RetryConfig
/**
* Cache storage configuration for memoization / storage of task results.
*/
cacheConfig?: CacheConfig<any, any>
/**
* Task identifier
*/
id?: string
// TODO
@ -54,14 +72,36 @@ export interface BaseLLMOptions<
TOutput extends TaskOutput = string,
TModelParams extends Record<string, any> = Record<string, any>
> extends BaseTaskOptions {
/**
* Zod schema for validating LLM input.
*/
inputSchema?: ZodType<TInput>
/**
* Zod schema for validating LLM output.
*/
outputSchema?: ZodType<TOutput>
cacheConfig?: CacheConfig<TInput, TOutput>
/**
* LLM provider to use.
*/
provider?: string
/**
* Name of the model to use.
*/
model?: string
/**
* Model parameters to use.
*/
modelParams?: TModelParams
/**
* Input / output pairs to include in the prompt.
*/
examples?: LLMExample[]
}
@ -121,6 +161,9 @@ export interface LLMExample {
}
export interface RetryConfig extends RetryOptions {
/**
* Retry strategy to use (default: `'heal'`).
*/
strategy?: string
}