cockpit: workspace auto-create + requirement role keyword
This commit is contained in:
parent
23b0f94917
commit
b5892601ca
@ -41,7 +41,8 @@ def _guess_role(title):
|
||||
"""Guess agent role from task title keywords."""
|
||||
title_lower = (title or '').lower()
|
||||
keywords = {
|
||||
'design': ['设计', 'design', '架构', '方案', '需求', '原型', 'ui', 'ux'],
|
||||
'requirement': ['需求分析', '需求文档', '需求规格', '需求', 'requirement', '分析需求', '调研'],
|
||||
'design': ['设计', 'design', '架构', '方案', '原型', 'ui', 'ux'],
|
||||
'develop': ['开发', '编码', '实现', '编写', 'develop', 'code', 'build', '重构', '修复'],
|
||||
'test': ['测试', 'test', '验证', '检查', 'review', '评审'],
|
||||
'deploy': ['部署', '发布', 'deploy', 'release', '上线', '配置'],
|
||||
@ -657,7 +658,19 @@ if action == 'send_message':
|
||||
await _save_context(sor, uid, proj.id, '')
|
||||
else:
|
||||
pid = getID()
|
||||
ws_dir = f"/d/pipeline/workspaces/{org_id}/{pname}"
|
||||
# 创建工作目录:检测 /d 可写性,不可写时回退 /tmp
|
||||
ws_base = '/d/pipeline/workspaces'
|
||||
try:
|
||||
if not os.path.isdir(os.path.dirname(ws_base)) or not os.access(os.path.dirname(ws_base), os.W_OK):
|
||||
ws_base = '/tmp/pipeline_workspaces'
|
||||
except Exception:
|
||||
ws_base = '/tmp/pipeline_workspaces'
|
||||
ws_dir = f"{ws_base}/{org_id}/{pname}"
|
||||
try:
|
||||
os.makedirs(ws_dir, exist_ok=True)
|
||||
except Exception:
|
||||
ws_dir = f"/tmp/pipeline_workspaces/{pname}"
|
||||
os.makedirs(ws_dir, exist_ok=True)
|
||||
await sor.C('sd_projects', {
|
||||
'id': pid, 'name': pname, 'description': intent.get('description', ''),
|
||||
'project_type': 'software', 'org_id': org_id, 'created_by': uid,
|
||||
@ -670,7 +683,7 @@ if action == 'send_message':
|
||||
'iteration_type': 'sprint', 'org_id': org_id, 'created_by': uid, 'status': 'active'
|
||||
})
|
||||
await _save_context(sor, uid, pid, iid)
|
||||
agent_reply = f"✅ 项目「{pname}」已创建,默认迭代已就绪。现在可以提交任务了。"
|
||||
agent_reply = f"✅ 项目「{pname}」已创建(工作目录:{ws_dir}),默认迭代已就绪。现在可以提交任务了。"
|
||||
elif intent_type == 'select_project':
|
||||
pname = intent.get('project_name', '')
|
||||
proj = await _find_project(sor, pname, org_id)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user