@workflowai/workflowai
Advanced tools
Comparing version
@@ -33,10 +33,12 @@ import type { WorkflowAIApi } from '@workflowai/api'; | ||
}; | ||
export type UseTaskResult<IS extends InputSchema, OS extends OutputSchema, S extends true | false = false> = { | ||
run: (input: TaskInput<IS>, options?: Partial<RunTaskOptions<S>>) => Promise<TaskRunResult<OS>> & { | ||
stream: () => Promise<TaskRunStreamResult<OS>>; | ||
}; | ||
importRun: (input: TaskInput<IS>, output: TaskOutput<OS>, options?: Partial<ImportTaskRunOptions>) => Promise<Pick<Awaited<ReturnType<WorkflowAIApi['tasks']['schemas']['runs']['import']>>, 'data' | 'response'>>; | ||
export type RunFn<IS extends InputSchema, OS extends OutputSchema, Stream extends true | false = false> = (input: TaskInput<IS>, options?: Partial<RunTaskOptions<Stream>>) => Promise<TaskRunResult<OS>> & { | ||
stream: () => Promise<TaskRunStreamResult<OS>>; | ||
}; | ||
export type TaskInput<T> = T extends InputSchema ? z.input<T> : T extends TaskDefinition<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['run'] ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['importRun'] ? TaskInput<IS> : never; | ||
export type TaskOutput<T> = T extends OutputSchema ? z.output<T> : T extends TaskDefinition<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['run'] ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['importRun'] ? TaskOutput<OS> : never; | ||
export type ImportRunFn<IS extends InputSchema, OS extends OutputSchema> = (input: TaskInput<IS>, output: TaskOutput<OS>, options?: Partial<ImportTaskRunOptions>) => Promise<Pick<Awaited<ReturnType<WorkflowAIApi['tasks']['schemas']['runs']['import']>>, 'data' | 'response'>>; | ||
export type UseTaskResult<IS extends InputSchema, OS extends OutputSchema, Stream extends true | false = false> = { | ||
run: RunFn<IS, OS, Stream>; | ||
importRun: ImportRunFn<IS, OS>; | ||
}; | ||
export type TaskInput<T> = T extends InputSchema ? z.input<T> : T extends TaskDefinition<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS> ? TaskInput<IS> : T extends RunFn<infer IS, infer _OS> ? TaskInput<IS> : T extends ImportRunFn<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['run'] ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['importRun'] ? TaskInput<IS> : never; | ||
export type TaskOutput<T> = T extends OutputSchema ? z.output<T> : T extends TaskDefinition<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS> ? TaskOutput<OS> : T extends RunFn<infer _IS, infer OS> ? TaskOutput<OS> : T extends ImportRunFn<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['run'] ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['importRun'] ? TaskOutput<OS> : never; | ||
export {}; |
import { InitWorkflowAIApiConfig, Schemas, type WorkflowAIApi } from '@workflowai/api'; | ||
import { GroupReference } from './Group'; | ||
import { type InputSchema, type OutputSchema, type TaskDefinition, type TaskRunResult, type TaskRunStreamResult, type UseTaskResult } from './Task'; | ||
@@ -6,7 +7,12 @@ export type WorkflowAIConfig = { | ||
}; | ||
export type RunTaskOptions<S extends true | false = false> = { | ||
group: Schemas['RunRequest']['group']; | ||
stream?: S; | ||
export type RunTaskOptions<Stream extends true | false = false> = { | ||
group: GroupReference; | ||
useCache?: Schemas['RunRequest']['use_cache']; | ||
labels?: Schemas['RunRequest']['labels']; | ||
metadata?: Schemas['RunRequest']['metadata']; | ||
stream?: Stream; | ||
}; | ||
export type ImportTaskRunOptions = Pick<Parameters<WorkflowAIApi['tasks']['schemas']['runs']['import']>[0]['body'], 'id' | 'group' | 'start_time' | 'end_time' | 'labels'>; | ||
export type ImportTaskRunOptions = Omit<Schemas['CreateTaskRunRequest'], 'task_input' | 'task_output' | 'group'> & { | ||
group: GroupReference; | ||
}; | ||
export declare class WorkflowAI { | ||
@@ -43,5 +49,5 @@ protected api: WorkflowAIApi; | ||
runner_version?: string | null | undefined; | ||
task_schema_id?: number | null | undefined; | ||
}; | ||
tags: string[]; | ||
aliases?: string[] | null | undefined; | ||
}; | ||
@@ -64,6 +70,9 @@ start_time?: string | null | undefined; | ||
properties: Record<string, never>; | ||
metric?: "correctness" | "latency" | "cost" | "quality" | "faithfulness" | undefined; | ||
}; | ||
created_at?: string | undefined; | ||
example_id?: string | null | undefined; | ||
}[] | null | undefined; | ||
labels?: string[] | null | undefined; | ||
metadata?: Record<string, never> | null | undefined; | ||
llm_completions?: { | ||
@@ -70,0 +79,0 @@ messages: Record<string, never>[]; |
@@ -6,2 +6,3 @@ "use strict"; | ||
const schema_1 = require("@workflowai/schema"); | ||
const Group_1 = require("./Group"); | ||
const Task_1 = require("./Task"); | ||
@@ -46,3 +47,3 @@ class WorkflowAI { | ||
} | ||
async runTask(taskDef, input, { group, stream }) { | ||
async runTask(taskDef, input, { group, stream, labels, metadata, useCache }) { | ||
const init = { | ||
@@ -57,4 +58,7 @@ params: { | ||
task_input: await taskDef.schema.input.parseAsync(input), | ||
group, | ||
group: (0, Group_1.sanitizeGroupReference)(group), | ||
stream, | ||
labels, | ||
metadata, | ||
useCache: useCache || 'when_available', | ||
}, | ||
@@ -121,2 +125,3 @@ }; | ||
...options, | ||
group: (0, Group_1.sanitizeGroupReference)(options.group), | ||
task_input, | ||
@@ -172,15 +177,10 @@ task_output, | ||
const importRun = async (input, output, overrideOptions) => { | ||
var _a, _b; | ||
return this.importTaskRun(taskDef, input, output, { | ||
const { group, ...options } = { | ||
...defaultOptions, | ||
...overrideOptions, | ||
group: { | ||
...defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.group, | ||
...overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.group, | ||
properties: { | ||
...(_a = defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.group) === null || _a === void 0 ? void 0 : _a.properties, | ||
...(_b = overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.group) === null || _b === void 0 ? void 0 : _b.properties, | ||
}, | ||
}, | ||
}); | ||
}; | ||
if (!(0, Group_1.isGroupReference)(group)) { | ||
throw new Error('Group configuration is required to import a task run'); | ||
} | ||
return this.importTaskRun(taskDef, input, output, { ...options, group }); | ||
}; | ||
@@ -187,0 +187,0 @@ return { |
import { initWorkflowAIApi, WorkflowAIApiRequestError, wrapAsyncIterator, } from '@workflowai/api'; | ||
import { inputZodToSchema, outputZodToSchema, z } from '@workflowai/schema'; | ||
import { isGroupReference, sanitizeGroupReference, } from './Group'; | ||
import { hasSchemaId, } from './Task'; | ||
@@ -42,3 +43,3 @@ export class WorkflowAI { | ||
} | ||
async runTask(taskDef, input, { group, stream }) { | ||
async runTask(taskDef, input, { group, stream, labels, metadata, useCache }) { | ||
const init = { | ||
@@ -53,4 +54,7 @@ params: { | ||
task_input: await taskDef.schema.input.parseAsync(input), | ||
group, | ||
group: sanitizeGroupReference(group), | ||
stream, | ||
labels, | ||
metadata, | ||
useCache: useCache || 'when_available', | ||
}, | ||
@@ -116,2 +120,3 @@ }; | ||
...options, | ||
group: sanitizeGroupReference(options.group), | ||
task_input, | ||
@@ -167,14 +172,10 @@ task_output, | ||
const importRun = async (input, output, overrideOptions) => { | ||
return this.importTaskRun(taskDef, input, output, { | ||
const { group, ...options } = { | ||
...defaultOptions, | ||
...overrideOptions, | ||
group: { | ||
...defaultOptions?.group, | ||
...overrideOptions?.group, | ||
properties: { | ||
...defaultOptions?.group?.properties, | ||
...overrideOptions?.group?.properties, | ||
}, | ||
}, | ||
}); | ||
}; | ||
if (!isGroupReference(group)) { | ||
throw new Error('Group configuration is required to import a task run'); | ||
} | ||
return this.importTaskRun(taskDef, input, output, { ...options, group }); | ||
}; | ||
@@ -181,0 +182,0 @@ return { |
@@ -33,11 +33,13 @@ import type { WorkflowAIApi } from '@workflowai/api'; | ||
}; | ||
export type UseTaskResult<IS extends InputSchema, OS extends OutputSchema, S extends true | false = false> = { | ||
run: (input: TaskInput<IS>, options?: Partial<RunTaskOptions<S>>) => Promise<TaskRunResult<OS>> & { | ||
stream: () => Promise<TaskRunStreamResult<OS>>; | ||
}; | ||
importRun: (input: TaskInput<IS>, output: TaskOutput<OS>, options?: Partial<ImportTaskRunOptions>) => Promise<Pick<Awaited<ReturnType<WorkflowAIApi['tasks']['schemas']['runs']['import']>>, 'data' | 'response'>>; | ||
export type RunFn<IS extends InputSchema, OS extends OutputSchema, Stream extends true | false = false> = (input: TaskInput<IS>, options?: Partial<RunTaskOptions<Stream>>) => Promise<TaskRunResult<OS>> & { | ||
stream: () => Promise<TaskRunStreamResult<OS>>; | ||
}; | ||
export type TaskInput<T> = T extends InputSchema ? z.input<T> : T extends TaskDefinition<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['run'] ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['importRun'] ? TaskInput<IS> : never; | ||
export type TaskOutput<T> = T extends OutputSchema ? z.output<T> : T extends TaskDefinition<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['run'] ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['importRun'] ? TaskOutput<OS> : never; | ||
export type ImportRunFn<IS extends InputSchema, OS extends OutputSchema> = (input: TaskInput<IS>, output: TaskOutput<OS>, options?: Partial<ImportTaskRunOptions>) => Promise<Pick<Awaited<ReturnType<WorkflowAIApi['tasks']['schemas']['runs']['import']>>, 'data' | 'response'>>; | ||
export type UseTaskResult<IS extends InputSchema, OS extends OutputSchema, Stream extends true | false = false> = { | ||
run: RunFn<IS, OS, Stream>; | ||
importRun: ImportRunFn<IS, OS>; | ||
}; | ||
export type TaskInput<T> = T extends InputSchema ? z.input<T> : T extends TaskDefinition<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS> ? TaskInput<IS> : T extends RunFn<infer IS, infer _OS> ? TaskInput<IS> : T extends ImportRunFn<infer IS, infer _OS> ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['run'] ? TaskInput<IS> : T extends UseTaskResult<infer IS, infer _OS>['importRun'] ? TaskInput<IS> : never; | ||
export type TaskOutput<T> = T extends OutputSchema ? z.output<T> : T extends TaskDefinition<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS> ? TaskOutput<OS> : T extends RunFn<infer _IS, infer OS> ? TaskOutput<OS> : T extends ImportRunFn<infer _IS, infer OS> ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['run'] ? TaskOutput<OS> : T extends UseTaskResult<infer _IS, infer OS>['importRun'] ? TaskOutput<OS> : never; | ||
export {}; | ||
//# sourceMappingURL=Task.d.ts.map |
import { InitWorkflowAIApiConfig, Schemas, type WorkflowAIApi } from '@workflowai/api'; | ||
import { GroupReference } from './Group'; | ||
import { type InputSchema, type OutputSchema, type TaskDefinition, type TaskRunResult, type TaskRunStreamResult, type UseTaskResult } from './Task'; | ||
@@ -6,7 +7,12 @@ export type WorkflowAIConfig = { | ||
}; | ||
export type RunTaskOptions<S extends true | false = false> = { | ||
group: Schemas['RunRequest']['group']; | ||
stream?: S; | ||
export type RunTaskOptions<Stream extends true | false = false> = { | ||
group: GroupReference; | ||
useCache?: Schemas['RunRequest']['use_cache']; | ||
labels?: Schemas['RunRequest']['labels']; | ||
metadata?: Schemas['RunRequest']['metadata']; | ||
stream?: Stream; | ||
}; | ||
export type ImportTaskRunOptions = Pick<Parameters<WorkflowAIApi['tasks']['schemas']['runs']['import']>[0]['body'], 'id' | 'group' | 'start_time' | 'end_time' | 'labels'>; | ||
export type ImportTaskRunOptions = Omit<Schemas['CreateTaskRunRequest'], 'task_input' | 'task_output' | 'group'> & { | ||
group: GroupReference; | ||
}; | ||
export declare class WorkflowAI { | ||
@@ -43,5 +49,5 @@ protected api: WorkflowAIApi; | ||
runner_version?: string | null | undefined; | ||
task_schema_id?: number | null | undefined; | ||
}; | ||
tags: string[]; | ||
aliases?: string[] | null | undefined; | ||
}; | ||
@@ -64,6 +70,9 @@ start_time?: string | null | undefined; | ||
properties: Record<string, never>; | ||
metric?: "correctness" | "latency" | "cost" | "quality" | "faithfulness" | undefined; | ||
}; | ||
created_at?: string | undefined; | ||
example_id?: string | null | undefined; | ||
}[] | null | undefined; | ||
labels?: string[] | null | undefined; | ||
metadata?: Record<string, never> | null | undefined; | ||
llm_completions?: { | ||
@@ -70,0 +79,0 @@ messages: Record<string, never>[]; |
{ | ||
"name": "@workflowai/workflowai", | ||
"version": "1.1.3", | ||
"version": "1.1.4", | ||
"description": "workflowAI client", | ||
@@ -48,5 +48,5 @@ "author": "workflowAI", | ||
"dependencies": { | ||
"@workflowai/api": "^1.3.1", | ||
"@workflowai/api": "^1.3.2", | ||
"@workflowai/schema": "^1.0.5" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
47339
14.83%29
20.83%751
12.59%Updated