#!/usr/bin/env python3 # -*- coding: utf-8 -*- """Task create API""" import json, uuid, time result = {'widgettype': 'Message', 'options': {'title': 'Error', 'message': 'Invalid request', 'type': 'error'}} try: dbname = get_module_dbname('harnessed_agent') user_id = await get_user() now = time.strftime('%Y-%m-%d %H:%M:%S') new_id = str(uuid.uuid4()).replace('-', '') workflow_id = params_kw.get('workflow_id', '').strip() task_name = params_kw.get('task_name', '').strip() task_type = params_kw.get('task_type', '').strip() skill_name = params_kw.get('skill_name', '').strip() tool_name = params_kw.get('tool_name', '').strip() parameters_json = params_kw.get('parameters_json', '').strip() depends_on = params_kw.get('depends_on', '').strip() parallel_group = params_kw.get('parallel_group', '').strip() timeout_seconds = params_kw.get('timeout_seconds', '').strip() retry_count = params_kw.get('retry_count', '').strip() order_index = params_kw.get('order_index', '').strip() async with DBPools().sqlorContext(dbname) as sor: await sor.sqlExe("""INSERT INTO hermes_tasks_workflow (id, user_id, workflow_id, task_name, task_type, skill_name, tool_name, parameters_json, depends_on, parallel_group, timeout_seconds, retry_count, order_index, created_at, updated_at) VALUES (${id}$, ${user_id}$, ${workflow_id}$, ${task_name}$, ${task_type}$, ${skill_name}$, ${tool_name}$, ${parameters_json}$, ${depends_on}$, ${parallel_group}$, ${timeout_seconds}$, ${retry_count}$, ${order_index}$, ${created_at}$, ${updated_at}$)""", { 'id': new_id, 'user_id': user_id, 'workflow_id': workflow_id, 'task_name': task_name, 'task_type': task_type, 'skill_name': skill_name, 'tool_name': tool_name, 'parameters_json': parameters_json, 'depends_on': depends_on, 'parallel_group': parallel_group, 'timeout_seconds': timeout_seconds, 'retry_count': retry_count, 'order_index': order_index, 'created_at': now, 'updated_at': now }) result = {'widgettype': 'Message', 'options': {'title': 'Success', 'message': 'Task创建成功', 'type': 'success'}} except Exception as e: result['options'] = {'title': 'Error', 'message': '创建失败: ' + str(e), 'type': 'error'} return json.dumps(result, ensure_ascii=False)