Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(js-sdk): Got testing suite working with current sdk #111

Merged
merged 1 commit into from
Apr 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/sdk/js/examples/minimal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ async function taskHandler(taskInput: TaskInput | null): Promise<StepHandler> {
return stepHandler
}

Agent.handleTask(taskHandler).start()
Agent.handleTask(taskHandler, {}).start()
45 changes: 39 additions & 6 deletions packages/sdk/js/src/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export const createAgentTask = async (
const task: Task = {
task_id: uuid(),
input: body?.input ?? null,
additional_input: body?.additional_input ?? {},
artifacts: [],
}
const stepHandler = await taskHandler(task.task_id, body?.input ?? null)
Expand All @@ -89,15 +90,47 @@ const registerCreateAgentTask: RouteRegisterFn = (router: Router) => {
* Lists all tasks that have been created for the agent.
* @returns Promise<string[]>
*/
export const listAgentTaskIDs = async (): Promise<string[]> => {
return tasks.map(([task, _]) => task.task_id)
export const listAgentTasks = async (): Promise<Task[]> => {
return tasks.map(([task, _]) => task)
}
const registerListAgentTaskIDs: RouteRegisterFn = (router: Router) => {
const registerListAgentTasks: RouteRegisterFn = (router: Router) => {
router.get('/agent/tasks', (req, res) => {
void (async () => {
try {
const ids = await listAgentTaskIDs()
res.status(200).json(ids)
const tasks = await listAgentTasks()

let currentPage = 1
let pageSize = 10
if (
req.query.current_page !== undefined &&
!isNaN(Number(req.query.current_page))
) {
currentPage = Number(req.query.current_page)
}

if (
req.query.page_size !== undefined &&
!isNaN(Number(req.query.page_size))
) {
pageSize = Number(req.query.page_size)
}

const totalItems = tasks.length
const totalPages = Math.ceil(totalItems / pageSize)

const start = (currentPage - 1) * pageSize
const end = start + pageSize
const pagedTasks = tasks.slice(start, end)

res.status(200).json({
tasks: pagedTasks,
pagination: {
total_items: totalItems,
total_pages: totalPages,
current_page: currentPage,
page_size: pageSize,
}
})
} catch (err: Error | any) {
console.error(err)
res.status(500).json({ error: err.message })
Expand Down Expand Up @@ -471,7 +504,7 @@ export class Agent {
port: port ?? this.config.port ?? defaultAgentConfig.port,
routes: [
registerCreateAgentTask,
registerListAgentTaskIDs,
registerListAgentTasks,
registerGetAgentTask,
registerListAgentTaskSteps,
registerExecuteAgentTaskStep,
Expand Down
4 changes: 2 additions & 2 deletions packages/sdk/js/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
type TaskHandler,
StepResultWithDefaults,
createAgentTask,
listAgentTaskIDs,
listAgentTasks,
getAgentTask,
listAgentTaskSteps,
executeAgentTaskStep,
Expand All @@ -34,7 +34,7 @@ export {
type TaskHandler,
StepResultWithDefaults as StepResult,
createAgentTask,
listAgentTaskIDs,
listAgentTasks,
getAgentTask,
listAgentTaskSteps,
executeAgentTaskStep,
Expand Down
3 changes: 3 additions & 0 deletions packages/sdk/js/src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* Input parameters for the task. Any value is allowed.
*/
export type TaskInput = any
export type AdditionalInput = any

/**
* Artifact that the task has produced. Any value is allowed.
Expand Down Expand Up @@ -87,6 +88,7 @@ export interface StepResult {

export interface Task {
input?: TaskInput
additional_input?: AdditionalInput
/**
* The ID of the task.
*/
Expand All @@ -99,4 +101,5 @@ export interface Task {

export interface TaskRequestBody {
input?: TaskInput
additional_input?: AdditionalInput
}
Loading