154 Commits

Author SHA1 Message Date
baiyanyun
91f68576dd 补齐测试配置与上传资源 2026-06-29 20:02:05 +08:00
baiyanyun
f84dc1d44e 吸收数字员工工作台入口重构收口 2026-06-29 19:53:34 +08:00
baiyanyun
d0b7223b53 吸收数字员工高风险缺口安全壳总收口 2026-06-15 23:33:11 +08:00
baiyanyun
3a41eb40d0 吸收数字员工日报物理事实发送记录预览 2026-06-15 17:20:42 +08:00
baiyanyun
fd06f3bce3 吸收数字员工服务技能记忆审计收口 2026-06-15 16:21:46 +08:00
baiyanyun
de33710423 吸收数字员工资产通知日报业务收口 2026-06-15 14:59:29 +08:00
baiyanyun
87b440e93f 吸收数字员工策略治理审批路由收口 2026-06-15 14:40:41 +08:00
baiyanyun
fd3b149172 吸收数字员工管理端治理策略版本预览 2026-06-15 14:01:10 +08:00
baiyanyun
ff7576f33d 吸收数字员工管理端服务恢复安全壳预览 2026-06-15 11:05:02 +08:00
baiyanyun
053a321ec1 吸收数字员工管理端技能安装权限预览 2026-06-15 10:51:48 +08:00
baiyanyun
6ad88cb6c4 吸收数字员工管理端记忆策略预览 2026-06-15 10:40:32 +08:00
baiyanyun
e57971488c 吸收数字员工管理端远程策略编辑安全壳预览 2026-06-15 10:24:41 +08:00
baiyanyun
642521035b 吸收数字员工管理端日报审批裁决回写预览 2026-06-15 09:54:56 +08:00
baiyanyun
b64f8e35c3 吸收数字员工管理端通知订阅策略预览 2026-06-15 09:45:52 +08:00
baiyanyun
a62b749ef2 吸收数字员工管理端诊断修复预览 2026-06-15 09:14:32 +08:00
baiyanyun
cc55fd819f 吸收数字员工跨设备调度派发策略冲突预览 2026-06-14 20:59:41 +08:00
baiyanyun
39371861f3 吸收数字员工跨设备审批策略冲突预览 2026-06-14 20:20:25 +08:00
baiyanyun
c01c699410 吸收数字员工管理端审批策略预览 2026-06-14 19:54:45 +08:00
baiyanyun
89eec8afc1 吸收数字员工管理端审批裁决策略预览 2026-06-14 18:49:08 +08:00
baiyanyun
8b651e4ae1 吸收数字员工管理端审计归档账单预览 2026-06-14 13:21:51 +08:00
baiyanyun
dd6c10f44b 吸收数字员工管理端产物跨设备聚合预览 2026-06-14 11:53:16 +08:00
baiyanyun
797ffeee82 吸收数字员工管理端记忆合并候选预览 2026-06-13 16:36:54 +08:00
baiyanyun
4fdc95da75 吸收数字员工管理端技能版本权限预览 2026-06-13 16:28:17 +08:00
baiyanyun
b9f49d2c0e 吸收数字员工管理端服务恢复运营预览 2026-06-13 16:18:01 +08:00
baiyanyun
7ea963dc9a 吸收数字员工跨设备路由干预冲突预览 2026-06-13 15:58:10 +08:00
baiyanyun
5ab6bc0fd0 吸收数字员工管理端步骤调度预览 2026-06-13 15:38:30 +08:00
baiyanyun
c9d8aa3b93 吸收数字员工管理端协作运营收口 2026-06-13 15:08:14 +08:00
baiyanyun
95838dba04 吸收数字员工管理端治理执行安全壳 2026-06-13 14:56:54 +08:00
baiyanyun
f08b0c39d9 吸收数字员工管理端策略调度预览 2026-06-13 14:42:16 +08:00
baiyanyun
de501c0252 吸收数字员工管理端记忆技能审计预览 2026-06-13 14:21:16 +08:00
baiyanyun
b6b0a9dcb3 吸收数字员工管理端治理命令预览 2026-06-13 14:07:40 +08:00
baiyanyun
d5025c0ebc 吸收数字员工管理端日报运营预览 2026-06-13 14:00:53 +08:00
baiyanyun
d86f82a4c5 吸收数字员工管理端审计诊断预览 2026-06-13 13:54:18 +08:00
baiyanyun
b0f0b95c2a 吸收数字员工管理端产物生命周期预览 2026-06-13 13:42:50 +08:00
baiyanyun
1daf58a94c 吸收数字员工管理端通知运营预览 2026-06-13 00:03:42 +08:00
baiyanyun
479e2e209d 吸收数字员工管理端路由治理预览 2026-06-12 23:47:20 +08:00
baiyanyun
ca746366f6 吸收数字员工管理端服务运营预览 2026-06-12 23:30:31 +08:00
baiyanyun
8ed4e0ce3b 吸收数字员工管理端审批治理预览 2026-06-12 23:03:58 +08:00
baiyanyun
bd7d7b4913 吸收数字员工发送账单审计外壳 2026-06-12 22:48:27 +08:00
baiyanyun
26fbf51fc8 吸收数字员工业务事实物化查询 2026-06-12 22:24:38 +08:00
baiyanyun
8a5d5d6474 吸收数字员工跨设备策略冲突视图 2026-06-12 21:48:33 +08:00
baiyanyun
b3f21adecb 吸收数字员工管理端低风险动作闭环 2026-06-12 21:17:51 +08:00
baiyanyun
be901ee112 吸收数字员工管理端运营台前端 2026-06-12 20:18:30 +08:00
baiyanyun
48ac9bdf19 吸收数字员工管理端运营台后端 2026-06-12 20:07:55 +08:00
baiyanyun
1a8e0fb51f 吸收数字员工运营预览台 2026-06-12 19:57:38 +08:00
baiyanyun
871bd715c4 合并账号菜单与数字员工吸收 2026-06-12 16:33:56 +08:00
baiyanyun
6323987a0d 收口账号菜单侧栏导航 2026-06-12 16:33:18 +08:00
baiyanyun
81d2797035 吸收数字员工审批冲突与产物业务闭环 2026-06-12 16:29:01 +08:00
baiyanyun
fffa0ebe50 吸收数字员工管理端业务查询模型 2026-06-12 11:21:43 +08:00
baiyanyun
9011b91dba 吸收数字员工诊断成本审计 2026-06-12 10:52:35 +08:00
baiyanyun
3a159e2f5a 吸收数字员工治理审计补齐 2026-06-12 10:33:46 +08:00
baiyanyun
e473b5c147 吸收数字员工通知权限引导 2026-06-12 10:16:02 +08:00
baiyanyun
e57c94c19d 吸收数字员工审批跨端冲突可视化 2026-06-11 21:53:08 +08:00
baiyanyun
84d34236e8 吸收数字员工风险策略本地管理 2026-06-11 21:14:29 +08:00
baiyanyun
245a210b25 吸收数字员工系统桌面通知 2026-06-11 20:53:46 +08:00
baiyanyun
8278fdc81c 吸收数字员工通知跨端同步 2026-06-11 20:27:10 +08:00
baiyanyun
4c862ef4b7 吸收数字员工入口路由干预回写 2026-06-11 18:31:41 +08:00
baiyanyun
d292c34579 吸收数字员工入口路由策略下发 2026-06-11 17:44:16 +08:00
baiyanyun
43418d0453 吸收数字员工多步审批跨端回写 2026-06-11 10:44:12 +08:00
baiyanyun
e9c76c59ca 吸收数字员工风险策略远端下发 2026-06-11 09:51:14 +08:00
baiyanyun
8ab3d73fb1 吸收数字员工技能远端策略下发 2026-06-11 09:04:08 +08:00
baiyanyun
751ce45619 吸收数字员工PlanStep管理端强租约 2026-06-10 23:59:54 +08:00
baiyanyun
c400367d22 吸收数字员工PlanStep远端策略拉取 2026-06-10 23:15:51 +08:00
baiyanyun
6f2ccdf783 吸收数字员工PlanStep本地软租约 2026-06-10 22:29:52 +08:00
baiyanyun
909f11dae5 吸收数字员工PlanStep跨任务编排执行 2026-06-10 21:00:59 +08:00
baiyanyun
a6e0246418 吸收数字员工PlanStep阻塞处理入口 2026-06-10 20:37:11 +08:00
baiyanyun
d679639175 吸收数字员工PlanStep依赖图派发策略 2026-06-10 18:41:33 +08:00
baiyanyun
3ac350eb27 吸收数字员工审批历史订阅策略 2026-06-10 18:22:53 +08:00
baiyanyun
5b78189c9c 吸收数字员工通知回复任务输入 2026-06-10 17:49:14 +08:00
baiyanyun
1271e4967b 吸收数字员工管理端通知视图 2026-06-10 17:05:57 +08:00
baiyanyun
5b2f14123e 吸收数字员工通知订阅策略 2026-06-10 15:56:34 +08:00
baiyanyun
13e48df63d 吸收数字员工管理端事件视图 2026-06-10 15:16:23 +08:00
baiyanyun
4f489f402a 吸收数字员工诊断审计观测 2026-06-10 14:49:49 +08:00
baiyanyun
914ed81f19 吸收数字员工入口路由观测 2026-06-10 11:43:48 +08:00
baiyanyun
d12db03216 吸收数字员工步骤自动调度 2026-06-10 11:23:22 +08:00
baiyanyun
047651e404 吸收数字员工审批历史联动 2026-06-10 10:46:28 +08:00
baiyanyun
ed2f19d257 吸收数字员工产物生命周期治理 2026-06-10 10:23:47 +08:00
baiyanyun
362f397e37 吸收数字员工产物访问治理 2026-06-10 10:00:34 +08:00
baiyanyun
cc36d8dcaf 吸收数字员工技能调用审计 2026-06-10 09:24:02 +08:00
baiyanyun
91540dec0c 吸收数字员工安全服务重启入口 2026-06-09 23:10:01 +08:00
baiyanyun
0d2008b35c 吸收数字员工日报产物闭环 2026-06-09 22:16:03 +08:00
baiyanyun
ba806f779e 吸收数字员工业务查询视图 2026-06-09 21:25:03 +08:00
baiyanyun
d1ae9421c4 吸收数字员工诊断审计投影 2026-06-09 19:24:28 +08:00
baiyanyun
755a8f041d 吸收数字员工入口路由动作映射 2026-06-09 19:05:15 +08:00
baiyanyun
23c3577ef4 吸收数字员工通知投影 2026-06-09 18:33:01 +08:00
baiyanyun
dc8cd09535 吸收数字员工审批时间线 2026-06-09 17:33:00 +08:00
baiyanyun
5160a73254 吸收数字员工产物交付状态 2026-06-09 16:47:14 +08:00
baiyanyun
4d8b8e4ad5 吸收数字员工技能策略开关 2026-06-09 16:28:18 +08:00
baiyanyun
9ad7881378 吸收数字员工治理动作入口 2026-06-09 15:54:49 +08:00
baiyanyun
702ea05d4d 吸收数字员工入口路由决策 2026-06-09 15:32:38 +08:00
baiyanyun
fd130f1f60 吸收数字员工步骤依赖调度 2026-06-09 14:18:07 +08:00
baiyanyun
ddd39396f7 吸收数字员工长期记忆闭环 2026-06-09 13:49:11 +08:00
baiyanyun
ef8252e2dd 吸收数字员工步骤治理闭环 2026-06-09 11:31:29 +08:00
baiyanyun
5ebc0a640b 吸收数字员工周期调度闭环 2026-06-09 11:06:25 +08:00
baiyanyun
f35d945d9c 吸收数字员工计划步骤依赖图 2026-06-09 10:21:12 +08:00
baiyanyun
e4715bbabb 梳理数字员工剩余吸收能力 2026-06-09 09:48:12 +08:00
baiyanyun
726369f5a9 沉淀数字员工角色偏好状态 2026-06-09 09:34:39 +08:00
baiyanyun
2f9af0b173 修复数字员工同步业务失败识别 2026-06-09 09:24:53 +08:00
baiyanyun
eb8ea9974f docs(client): refresh digital fallback status 2026-06-09 08:50:46 +08:00
baiyanyun
16eb8c691e chore(client): remove digital demo scenario residue 2026-06-09 08:49:45 +08:00
baiyanyun
48e5830b9e feat(client): remove demo skill fallback 2026-06-09 08:48:11 +08:00
baiyanyun
451cda7aa6 feat(client): materialize restarted plans 2026-06-08 18:58:39 +08:00
baiyanyun
913c6da8f3 feat(client): project local GUI and file tools 2026-06-08 18:44:45 +08:00
baiyanyun
38e5bdbc04 feat(client): project acp skills to digital catalog 2026-06-08 18:31:03 +08:00
baiyanyun
e4652ace1c feat(client): remove demo mission fallback 2026-06-08 18:19:36 +08:00
baiyanyun
820b1b6f13 feat(client): control task agents from digital deck 2026-06-08 18:06:11 +08:00
baiyanyun
76a82f6203 chore(client): add digital favicon 2026-06-08 17:48:38 +08:00
baiyanyun
3bab6af63c feat(client): define digital sync contract 2026-06-08 17:10:38 +08:00
baiyanyun
ff25c2fef7 feat(client): project plan and task agents 2026-06-08 11:57:47 +08:00
baiyanyun
710bf72353 feat(client): project managed services to digital employee 2026-06-08 11:40:03 +08:00
baiyanyun
8dc9ce73b9 chore(client): add digital employee check 2026-06-08 10:36:19 +08:00
baiyanyun
700f6a40b8 feat(client): show digital artifact sources 2026-06-08 10:31:36 +08:00
baiyanyun
f4af77cb2b feat(client): reply digital approvals to acp 2026-06-08 10:23:06 +08:00
baiyanyun
ee51fcdbeb feat(client): enrich digital skill catalog 2026-06-07 20:04:38 +08:00
baiyanyun
0f0bffe695 feat(client): load local digital plan templates 2026-06-07 19:53:24 +08:00
baiyanyun
e37024bdbe feat(client): persist digital governance events 2026-06-07 18:59:59 +08:00
baiyanyun
5e76828afe fix(client): ensure digital employee schema 2026-06-07 18:39:19 +08:00
baiyanyun
6deea42de1 docs(client): note digital employee database location 2026-06-07 18:24:32 +08:00
baiyanyun
09d65701a3 fix(client): migrate digital storage keys 2026-06-07 18:21:24 +08:00
baiyanyun
fa5522e32e fix(client): localize digital fallback missions 2026-06-07 18:09:39 +08:00
baiyanyun
757858a9aa fix(client): limit workday decisions to approvals 2026-06-07 17:56:37 +08:00
baiyanyun
aee8af0877 fix(client): sync digital approval decisions 2026-06-07 17:52:20 +08:00
baiyanyun
b07f133ed6 feat(client): project digital employee runtime into UI 2026-06-07 17:46:07 +08:00
baiyanyun
8ff1c57b83 fix(backend): validate digital sync client key header 2026-06-07 11:33:59 +08:00
baiyanyun
bf25bc5a47 feat: filter digital sync links by device 2026-06-07 11:24:01 +08:00
baiyanyun
029ca6e7f6 feat: mask digital sync client keys 2026-06-07 11:14:16 +08:00
baiyanyun
7eb1498412 feat: summarize digital sync records 2026-06-07 02:25:37 +08:00
baiyanyun
2bf9192fc5 feat(client): export digital sync diagnostics 2026-06-07 02:22:37 +08:00
baiyanyun
df2ab51e70 fix(client): omit client key from sync record links 2026-06-07 02:20:30 +08:00
baiyanyun
f8564b631d test(client): cover digital employee sync retries 2026-06-07 02:16:04 +08:00
baiyanyun
bdcb5c6c14 feat(client): show digital sync credential gaps 2026-06-07 02:05:12 +08:00
baiyanyun
6b033da313 feat: auto open digital sync records 2026-06-07 02:02:21 +08:00
baiyanyun
38ece7e3d3 feat(client): summarize digital sync failures 2026-06-07 01:51:15 +08:00
baiyanyun
cef3fe4a43 feat(client): track digital sync retry history 2026-06-07 01:42:39 +08:00
baiyanyun
646901b5fa feat: deep link digital sync failures 2026-06-07 01:35:08 +08:00
baiyanyun
508406ff10 feat(client): add digital sync retry details 2026-06-07 01:17:07 +08:00
baiyanyun
0672e82fc7 feat(client): show digital sync failure details 2026-06-07 01:05:49 +08:00
baiyanyun
ac1a6fd0e6 feat(client): show digital employee sync errors 2026-06-07 00:53:28 +08:00
baiyanyun
e2a91d88e8 feat: add digital employee sync records page 2026-06-07 00:37:15 +08:00
baiyanyun
dc14418963 feat(backend): expose digital employee sync records 2026-06-05 18:40:44 +08:00
baiyanyun
17475bf0d7 feat(client): add manual digital employee sync 2026-06-05 18:24:04 +08:00
baiyanyun
b7aecad092 feat(client): back off digital employee sync retries 2026-06-05 18:19:32 +08:00
baiyanyun
35d2cb5ea5 feat(client): show digital employee sync status 2026-06-05 17:25:46 +08:00
baiyanyun
ab1d022905 feat: add digital employee management sync endpoint 2026-06-05 17:21:48 +08:00
baiyanyun
b9132c421d feat(client): sync digital employee outbox 2026-06-05 17:11:10 +08:00
baiyanyun
f8048724c4 feat(client): mirror agent events to digital employee 2026-06-05 17:00:44 +08:00
baiyanyun
512c7ab095 feat(client): record computer tasks for digital employee 2026-06-05 16:52:19 +08:00
baiyanyun
2373e0b5f3 feat(client): add digital employee sync schema 2026-06-05 16:43:23 +08:00
baiyanyun
40151c3902 feat(client): persist digital employee snapshots 2026-06-05 16:27:15 +08:00
baiyanyun
15a3285ed5 feat(client): bridge digital employee status 2026-06-05 15:59:48 +08:00
baiyanyun
31b4b5a281 feat(client): add qimingclaw digital adapter 2026-06-05 15:45:55 +08:00
baiyanyun
2eb9a99da3 feat(client): vendor digital employee source 2026-06-05 15:02:42 +08:00
baiyanyun
c6fdff20e8 fix(client): show embedded digital employee directly 2026-06-04 23:08:41 +08:00
baiyanyun
2c3f2c8c54 feat(client): add offline digital employee overview 2026-06-04 19:42:37 +08:00
1283 changed files with 88892 additions and 130147 deletions

View File

@@ -0,0 +1,9 @@
---
name:
description:
license:
---
# Processing Guide
## Overview

View File

@@ -0,0 +1,4 @@
{
"description": "Skill template",
"config": {}
}

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env python3
# Helper script for this skill
if __name__ == "__main__":
print("Process script placeholder")

View File

@@ -0,0 +1,3 @@
# API Documentation
Add interface descriptions related to skills here.

View File

@@ -104,6 +104,10 @@
<groupId>com.xspaceagi</groupId>
<artifactId>app-platform-bill-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>

View File

@@ -143,12 +143,6 @@ public class AuthInterceptor implements HandlerInterceptor {
// ignore
}
}
}
if (tenantId == null) {
// 对于无需鉴权的路径(如飞书/钉钉 webhook使用默认租户不要求登录
if (isExcludedPath(originalRequestUri)) {
tenantId = 1L;
}
if (tenantId == null) {
tenantId = 1L;
}

View File

@@ -27,7 +27,7 @@ spring:
datasource:
# 主数据源 (MySQL)
master:
url: jdbc:mysql://${DB_HOST:localhost}:3306/${DB_NAME:agent_platform}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:mysql://${DB_HOST:localhost}:3306/${DB_NAME:agent_platform}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: ${DB_USERNAME:root}
password: ${DB_PASSWORD:your_mysql_password}
@@ -48,7 +48,7 @@ spring:
filters: stat # 启用 stat filter 用于监控
# Doris 数据源
doris:
url: jdbc:mysql://${DORIS_HOST:localhost}:3306/${DORIS_DB_NAME:agent_custom_table}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:mysql://${DORIS_HOST:localhost}:3306/${DORIS_DB_NAME:agent_custom_table}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: ${DORIS_USERNAME:root}
password: ${DORIS_PASSWORD:your_doris_password}
@@ -165,17 +165,12 @@ search:
username: ${ES_USERNAME:elastic}
password: ${ES_PASSWORD:your_elasticsearch_password}
api_key: ${ES_API_KEY:}
text_analyzer: ${ES_TEXT_ANALYZER:standard}
search_analyzer: ${ES_SEARCH_ANALYZER:standard}
# 生态市场模块配置
eco-market:
# 服务端配置
server:
# 远程server端的 ip端口配置
enabled: ${ECO_MARKET_SERVER_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:}
# 是否拉取官方生态市场通知,私有化部署默认关闭
pull-message-enabled: ${ECO_MARKET_PULL_MESSAGE_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:https://test-agent-market-api.xspaceagi.com}
client:
# 客户端配置
retry:
@@ -185,15 +180,6 @@ eco-market:
mcp:
proxy-base-url: ${MCP_PROXY_URL:http://localhost:8020}
overview-page:
service-url: ${OVERVIEW_SERVICE_URL:http://127.0.0.1:5173/_app/digital}
intelligent-data:
service-url: ${INTELLIGENT_DATA_SERVICE_URL:http://192.168.2.106:3000/test-console}
document-editor:
service-url: ${DOCUMENT_EDITOR_SERVICE_URL:}
knife4j:
# 开启增强配置
enable: true
@@ -244,4 +230,4 @@ model-api-proxy:
enable-model-proxy: ${MODEL_PROXY_ENABLE:true}
port: ${MODEL_PROXY_PORT:18086}
#记录日志
save-log: ${MODEL_PROXY_SAVE_LOG:true}
save-log: ${MODEL_PROXY_SAVE_LOG:true}

View File

@@ -27,7 +27,7 @@ spring:
datasource:
# 主数据源 (MySQL)
master:
url: jdbc:mysql://${DB_HOST:localhost}:3306/${DB_NAME:agent_platform}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:mysql://${DB_HOST:localhost}:3306/${DB_NAME:agent_platform}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: ${DB_USERNAME:root}
password: ${DB_PASSWORD:Byyagz@121}
@@ -48,7 +48,7 @@ spring:
filters: stat # 启用 stat filter 用于监控
# Doris 数据源
doris:
url: jdbc:mysql://${DORIS_HOST:localhost}:3306/${DORIS_DB_NAME:agent_platform}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:mysql://${DORIS_HOST:localhost}:3306/${DORIS_DB_NAME:agent_platform}?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowMultiQueries=true&socketTimeout=300000&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: ${DORIS_USERNAME:root}
password: ${DORIS_PASSWORD:Byyagz@121}
@@ -89,7 +89,7 @@ jwt:
secretKey: ${JWT_SECRET_KEY:qiming-local-dev-jwt-secret-key-32-chars}
file:
uploadFolder: ${FILE_UPLOAD_FOLDER:/Users/qiming/qiming-work/uploads}
uploadFolder: ${FILE_UPLOAD_FOLDER:D:/work/workspace/feitian-base/nvw/.dev/uploads}
baseUrl: ${FILE_BASE_URL:http://localhost:18081/files/}
# Storage configuration
@@ -98,7 +98,7 @@ storage:
local:
upload:
folder: ${LOCAL_UPLOAD_FOLDER:/Users/qiming/qiming-work/uploads}
folder: ${LOCAL_UPLOAD_FOLDER:D:/work/workspace/feitian-base/nvw/.dev/uploads}
# Tencent Cloud COS configuration (takes effect when storage.type=cos)
cos:
@@ -165,17 +165,12 @@ search:
username: ${ES_USERNAME:}
password: ${ES_PASSWORD:}
api_key: ${ES_API_KEY:}
text_analyzer: ${ES_TEXT_ANALYZER:standard}
search_analyzer: ${ES_SEARCH_ANALYZER:standard}
# 生态市场模块配置
eco-market:
# 服务端配置
server:
# 远程server端的 ip端口配置
enabled: ${ECO_MARKET_SERVER_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:}
# 是否拉取官方生态市场通知,私有化部署默认关闭
pull-message-enabled: ${ECO_MARKET_PULL_MESSAGE_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:https://test-agent-market-api.xspaceagi.com}
client:
# 客户端配置
retry:
@@ -185,15 +180,6 @@ eco-market:
mcp:
proxy-base-url: ${MCP_PROXY_URL:http://localhost:18020}
overview-page:
service-url: ${OVERVIEW_SERVICE_URL:http://127.0.0.1:5173/_app/digital}
intelligent-data:
service-url: ${INTELLIGENT_DATA_SERVICE_URL:http://192.168.2.106:3000/test-console}
document-editor:
service-url: ${DOCUMENT_EDITOR_SERVICE_URL:}
knife4j:
# 开启增强配置
enable: true

View File

@@ -169,10 +169,7 @@ eco-market:
# 服务端配置
server:
# 远程server端的 ip端口配置
enabled: ${ECO_MARKET_SERVER_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:}
# 是否拉取官方生态市场通知,私有化部署默认关闭
pull-message-enabled: ${ECO_MARKET_PULL_MESSAGE_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:https://agent-market-api.xspaceagi.com}
client:
# 客户端配置
retry:
@@ -182,15 +179,6 @@ eco-market:
mcp:
proxy-base-url: ${MCP_PROXY_URL:http://localhost:8020}
overview-page:
service-url: ${OVERVIEW_SERVICE_URL:http://127.0.0.1:5173/_app/digital}
intelligent-data:
service-url: ${INTELLIGENT_DATA_SERVICE_URL:http://192.168.2.106:3000/test-console}
document-editor:
service-url: ${DOCUMENT_EDITOR_SERVICE_URL:}
knife4j:
# 开启增强配置
enable: true
@@ -241,4 +229,4 @@ model-api-proxy:
enable-model-proxy: ${MODEL_PROXY_ENABLE:true}
port: ${MODEL_PROXY_PORT:18086}
#记录日志
save-log: ${MODEL_PROXY_SAVE_LOG:true}
save-log: ${MODEL_PROXY_SAVE_LOG:true}

View File

@@ -169,10 +169,7 @@ eco-market:
# 服务端配置
server:
# 远程server端的 ip端口配置
enabled: ${ECO_MARKET_SERVER_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:}
# 是否拉取官方生态市场通知,私有化部署默认关闭
pull-message-enabled: ${ECO_MARKET_PULL_MESSAGE_ENABLED:false}
base-url: ${ECO_MARKET_SERVER_URL:https://test-agent-market-api.xspaceagi.com}
client:
# 客户端配置
retry:
@@ -182,15 +179,6 @@ eco-market:
mcp:
proxy-base-url: ${MCP_PROXY_URL:http://localhost:8020}
overview-page:
service-url: ${OVERVIEW_SERVICE_URL:http://127.0.0.1:5173/_app/digital}
intelligent-data:
service-url: ${INTELLIGENT_DATA_SERVICE_URL:http://192.168.2.106:3000/test-console}
document-editor:
service-url: ${DOCUMENT_EDITOR_SERVICE_URL:}
knife4j:
# 开启增强配置
enable: true
@@ -241,4 +229,4 @@ model-api-proxy:
enable-model-proxy: ${MODEL_PROXY_ENABLE:true}
port: ${MODEL_PROXY_PORT:18086}
#记录日志
save-log: ${MODEL_PROXY_SAVE_LOG:true}
save-log: ${MODEL_PROXY_SAVE_LOG:true}

View File

@@ -1,11 +1,12 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.*;
import com.xspaceagi.agent.core.adapter.dto.AgentDetailDto;
import com.xspaceagi.agent.core.adapter.dto.CardDto;
import com.xspaceagi.agent.core.adapter.dto.UserAgentDto;
import com.xspaceagi.agent.core.adapter.dto.config.AgentComponentConfigDto;
import com.xspaceagi.agent.core.adapter.dto.config.AgentConfigDto;
import com.xspaceagi.agent.core.adapter.dto.config.Arg;
import com.xspaceagi.agent.core.adapter.dto.config.ModelConfigDto;
import com.xspaceagi.agent.core.adapter.repository.entity.AgentComponentConfig;
import java.util.List;
@@ -120,8 +121,6 @@ public interface AgentApplicationService {
*/
AgentComponentConfigDto queryComponentConfig(Long id);
List<AgentComponentConfigDto> queryComponentConfigListByAgentIdAndType(Long agentId, AgentComponentConfig.Type type);
List<Arg> getAgentNoneSystemVariables(Long agentId, Long spaceId);
/**
@@ -233,17 +232,10 @@ public interface AgentApplicationService {
/**
* 获取用户可选择的模型列表
*
* @param userId 用户ID
* @param userId 用户ID
* @param agentId 智能体ID
* @return 模型列表
*/
List<ModelConfigDto> queryUserCanSelectModelListForAgent(Long userId, Long agentId);
/**
* AI生成项目信息名称、描述、图标
*/
GenerateInfoResultDto generateInfo(GenerateInfoReqDto req);
String uploadSvgIcon(String svgIcon, String fileName);
}

View File

@@ -1,8 +1,7 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.*;
import java.util.List;
import com.xspaceagi.agent.core.adapter.dto.AddSkillsToWorkspaceDto;
import com.xspaceagi.agent.core.adapter.dto.CreateWorkspaceDto;
public interface AgentWorkspaceApplicationService {
@@ -20,48 +19,4 @@ public interface AgentWorkspaceApplicationService {
*/
void addSkillsToWorkspace(AddSkillsToWorkspaceDto addSkillsToWorkspaceDto);
/**
* 初始化项目模板
* 根据项目类型和编程语言从 classpath 读取模板 zip传到工作空间
* 根据 git版本开关决定是否执行 git init + commit
*/
void initProjectTemplate(InitProjectTemplateDto dto);
/**
* 安装项目依赖
* TypeScript 项目执行 pnpm installPython 项目执行 pip install
*/
void installProject(InstallProjectDto dto);
/**
* 打包 Agent在沙箱工作空间执行打包脚本生成各平台压缩包上传到平台文件存储
*/
List<AgentPublishVersionDto> packageAgent(PackageAgentDto dto);
/**
* 从沙箱工作空间取回技能文件,上传到文件服务,用于技能发布
*/
List<SkillFileDto> snapshotSkillFilesFromSandbox(Long userId, Long cId, String targetType, Long skillId);
/**
* 删除沙箱工作空间
*/
void deleteWorkspace(Long userId, Long cId);
/**
* 从沙箱导出技能为 zip 包
*/
SkillExportResultDto exportSkillFromSandbox(Long userId, Long cId, String skillName);
/**
* 复制源沙箱工作空间到新的工作空间,并初始化 git
* 采用先打包下载,后上传到新空间的方式,可以实现跨主机的复制
*/
void copySandboxWorkspace(Long srcUserId, Long srcCId, Long destUserId, Long destCId);
/**
* 从指定 url 地址下载 zip 文件并上传到工作空间,初始化项目模板
*/
void uploadZipToWorkspace(Long userId, Long cId, String zipFileUrl);
}

View File

@@ -3,9 +3,8 @@ package com.xspaceagi.agent.core.adapter.application;
import java.util.List;
import com.xspaceagi.agent.core.adapter.dto.ComponentDto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
public interface ComponentApplicationService {
List<ComponentDto> getComponentListBySpaceId(Long spaceId, Long groupId, List<Published.TargetType> types);
List<ComponentDto> getComponentListBySpaceId(Long spaceId);
}

View File

@@ -5,6 +5,7 @@ import com.xspaceagi.agent.core.adapter.repository.entity.Conversation;
import org.springframework.ai.chat.messages.Message;
import reactor.core.publisher.Flux;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -25,8 +26,6 @@ public interface ConversationApplicationService {
ConversationDto createConversationForTaskCenter(Long tenantId, Long userId, Long agentId);
ConversationDto createConversationForProjectDevelopment(Long tenantId, Long userId, Long spaceId, Long devAgentId, String targetType, Long targetId);
/**
* 创建任务会话,返回会话
*
@@ -53,8 +52,6 @@ public interface ConversationApplicationService {
void updateConversationStatus(Long cid, Conversation.ConversationTaskStatus status);
void updateConversationVariables(Long id, Map<String, Object> variables);
/**
* 删除会话
*
@@ -137,15 +134,7 @@ public interface ConversationApplicationService {
Long nextConversationId(Long agentId, String sandboxServerId);
List<Message> getRoundMessages(String conversationId, int i);
List<ChatMessageDto> getRoundMessages(String conversationId, Long minId);
Collection<? extends Message> getRoundMessages(String conversationId, int i);
void addRoundMessage(String conversationId, Message message);
void setChatStopStatus(String conversationId);
boolean isChatStop(String conversationId);
void clearChatStopStatus(String conversationId);
}

View File

@@ -0,0 +1,105 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeAdminWorkbenchPageDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeAdminActionPageDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeAdminActionRequestDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeAdminActionResultDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeAdminRecordRequestDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeAdminRecordResultDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeBillingEstimateDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeBusinessViewPageDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeePlanBusinessViewDetailDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeePolicySnapshotPageDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeSyncRecordPageDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeSyncRequestDto;
import com.xspaceagi.agent.core.adapter.dto.digital.DigitalEmployeeSyncResponseDto;
import java.util.Date;
import java.util.List;
public interface DigitalEmployeeSyncApplicationService {
DigitalEmployeeSyncResponseDto syncOutbox(DigitalEmployeeSyncRequestDto request);
DigitalEmployeeSyncRecordPageDto queryRecords(
String clientKey,
String deviceId,
String entityType,
String entityId,
String outboxId,
Long pageNo,
Long pageSize
);
DigitalEmployeeBusinessViewPageDto queryBusinessViews(
String entityType,
String clientKey,
String deviceId,
String entityId,
String status,
String syncStatus,
Date updatedFrom,
Date updatedTo,
Long pageNo,
Long pageSize
);
DigitalEmployeePlanBusinessViewDetailDto queryPlanBusinessViewDetail(
String planId,
String clientKey,
String deviceId
);
DigitalEmployeeAdminWorkbenchPageDto queryAdminWorkbench(
String view,
String clientKey,
String deviceId,
String entityType,
String entityId,
String status,
String kind,
String category,
String level,
String priority,
Date updatedFrom,
Date updatedTo,
Long pageNo,
Long pageSize
);
DigitalEmployeePolicySnapshotPageDto queryAdminPolicySnapshots(
String clientKey,
String deviceId,
String status,
String policyKind,
Date updatedFrom,
Date updatedTo,
Long pageNo,
Long pageSize
);
DigitalEmployeeAdminActionResultDto createAdminAction(DigitalEmployeeAdminActionRequestDto request);
DigitalEmployeeAdminActionPageDto queryPendingAdminActions(
String clientKey,
String deviceId,
Long pageNo,
Long pageSize
);
DigitalEmployeeAdminActionResultDto markAdminActionResult(
Long actionId,
String status,
List<String> reasonCodes
);
DigitalEmployeeAdminRecordResultDto recordDailyReportSendResult(DigitalEmployeeAdminRecordRequestDto request);
DigitalEmployeeBillingEstimateDto queryBillingEstimates(
String clientKey,
String deviceId,
Date updatedFrom,
Date updatedTo
);
DigitalEmployeeAdminRecordResultDto recordAuditArchive(DigitalEmployeeAdminRecordRequestDto request);
}

View File

@@ -19,41 +19,31 @@ public interface IComputerFileApplicationService {
/**
* 查询文件列表
*/
Map<String, Object> getFileList(Long userId, Long cId, String proxyPath, UserContext userContext, String customTargetDir);
Map<String, Object> getFileList(Long userId, Long cId, String proxyPath, UserContext userContext);
/**
* 更新文件
*/
Map<String, Object> filesUpdate(Long userId, Long cId, List<ComputerFileInfo> files, UserContext userContext, String customTargetDir);
Map<String, Object> filesUpdate(Long userId, Long cId, List<ComputerFileInfo> files, UserContext userContext);
/**
* 上传文件
*/
Map<String, Object> uploadFile(Long userId, Long cId, String filePath, MultipartFile file, UserContext userContext, String customTargetDir);
Map<String, Object> uploadFile(Long userId, Long cId, String filePath, MultipartFile file, UserContext userContext);
/**
* 批量上传文件
*/
Map<String, Object> uploadFiles(Long userId, Long cId, List<String> filePaths, List<MultipartFile> files, UserContext userContext, String customTargetDir);
/**
* 导入项目zip 替换工作空间,保留白名单目录)
*/
Map<String, Object> importProject(Long userId, Long cId, MultipartFile file, UserContext userContext, String customTargetDir);
Map<String, Object> uploadFiles(Long userId, Long cId, List<String> filePaths, List<MultipartFile> files, UserContext userContext);
/**
* 获取静态文件
*/
ResponseEntity<StreamingResponseBody> getStaticFile(Long cId, HttpServletRequest request, String customTargetDir);
ResponseEntity<StreamingResponseBody> getStaticFile(Long cId, HttpServletRequest request);
/**
* 下载全部文件zip
*/
ResponseEntity<StreamingResponseBody> downloadAllFiles(Long userId, Long cId, UserContext userContext, String customTargetDir);
/**
* 获取沙盒日志
*/
Map<String, Object> getLogs(Long userId, Long cId, int tailLines);
ResponseEntity<StreamingResponseBody> downloadAllFiles(Long userId, Long cId, UserContext userContext);
}

View File

@@ -2,7 +2,6 @@ package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.CodeCheckResultDto;
import com.xspaceagi.agent.core.adapter.dto.ModelQueryDto;
import com.xspaceagi.agent.core.adapter.dto.SortUpdateDTO;
import com.xspaceagi.agent.core.adapter.dto.config.ModelConfigDto;
import org.springframework.core.ParameterizedTypeReference;
@@ -143,6 +142,4 @@ public interface ModelApplicationService {
String testModelConnectivity(ModelConfigDto modelConfig, String testPrompt);
List<ModelConfigDto> getMySystemModels(Long userId, String tab);
void updateModelSort(List<SortUpdateDTO> updateDTOS);
}

View File

@@ -1,9 +0,0 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.ProjectCreateDTO;
import com.xspaceagi.agent.core.adapter.dto.ProjectCreateResultDTO;
public interface ProjectApplicationService {
ProjectCreateResultDTO createProject(ProjectCreateDTO projectCreateDTO);
}

View File

@@ -5,8 +5,6 @@ import com.xspaceagi.agent.core.adapter.dto.*;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import com.xspaceagi.system.spec.dto.PageQueryVo;
import com.xspaceagi.system.spec.page.SuperPage;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -17,8 +15,6 @@ public interface PublishApplicationService {
*/
SuperPage<PublishedDto> queryPublishedList(PublishedQueryDto publishedQueryDto);
List<ResourceGroupDto> queryGroupedPublishedList(PublishedQueryDto publishedQueryDto);
SuperPage<PublishedDto> queryPublishedListForAt(PublishedQueryDto publishedQueryDto);
List<PublishedDto> queryPublishedList(Published.TargetType targetType, List<Long> targetIds);
@@ -27,8 +23,6 @@ public interface PublishApplicationService {
List<PublishedDto> queryPublishedList(Published.TargetType targetType, List<Long> targetIds, String kw);
List<PublishedDto> queryPublishedList(Published.TargetType targetType, List<Long> targetIds, String kw, boolean returnConfig);
IPage<PublishedDto> queryPublishedListForManage(PublishedQueryDto publishedQueryDto);
/**
@@ -45,8 +39,6 @@ public interface PublishApplicationService {
*/
Long publishApply(PublishApplyDto publishApplyDto);
String publishOrApply(PublishApplySubmitDto publishApplySubmitDto);
/**
* 通过发布
*/
@@ -116,6 +108,4 @@ public interface PublishApplicationService {
void updateAccessControlStatus(Published.TargetType targetType, Long targetId, Integer status);
void updatePublishName(Published.TargetType targetType, Long targetId, String name);
Object checkPermissionAndReturnTargetConfig(Published.TargetType targetType, Long targetId);
}

View File

@@ -1,27 +0,0 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.recommend.RecommendHomeResponse;
import com.xspaceagi.agent.core.adapter.dto.recommend.TargetRecommendPageRequest;
import com.xspaceagi.agent.core.adapter.dto.recommend.TargetRecommendResponse;
import com.xspaceagi.agent.core.adapter.dto.recommend.TargetRecommendSaveRequest;
import java.util.List;
public interface RecommendApplicationService {
void save(TargetRecommendSaveRequest request);
void update(TargetRecommendSaveRequest request);
void delete(Long id);
TargetRecommendResponse getById(Long id);
List<TargetRecommendResponse> page(TargetRecommendPageRequest request);
List<TargetRecommendResponse> list(String recType, String targetType);
void updateSort(Long id, Integer sort);
RecommendHomeResponse getRecommendations();
}

View File

@@ -1,34 +0,0 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.ResourceGroupDto;
import com.xspaceagi.agent.core.adapter.repository.entity.ResourceGroupRelation;
import java.util.List;
import java.util.Map;
public interface ResourceGroupApplicationService {
Long add(ResourceGroupDto dto);
void update(ResourceGroupDto dto);
void delete(Long id);
ResourceGroupDto queryById(Long id);
ResourceGroupDto queryByName(Long spaceId, String type, String name);
List<ResourceGroupDto> queryList(String name, List<String> types, Long spaceId);
List<ResourceGroupDto> queryList(List<Long> groupIds);
void addResourceToGroup(Long groupId, String targetType, Long targetId);
void removeResourceFromGroup(Long groupId, String targetType, Long targetId);
List<ResourceGroupRelation> queryGroupRelations(Long groupId);
List<ResourceGroupRelation> queryGroupRelations(List<Map<String, Long>> targets);
ResourceGroupRelation queryResourceGroupRelation(String type, Long targetId);
}

View File

@@ -1,7 +1,6 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.*;
import com.xspaceagi.agent.core.spec.enums.UsageScenarioEnum;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
@@ -69,18 +68,6 @@ public interface SkillApplicationService {
*/
Long importSkill(MultipartFile file, SkillConfigDto existSkill, Long targetSpaceId, SkillExtDto ext);
/**
* 导入技能支持文件或URL导入
*
* @param url 技能文件URL与file二选一
* @param file 上传的技能文件与url二选一
* @param targetSkillId 目标技能ID导入到已有技能为null时创建新技能
* @param targetSpaceId 目标空间ID创建新技能时必填
* @param usageScenarios 使用场景列表
* @return 技能ID
*/
Long importSkill(String url, MultipartFile file, Long targetSkillId, Long targetSpaceId, List<UsageScenarioEnum> usageScenarios);
/**
* 复制技能
*/
@@ -91,11 +78,6 @@ public interface SkillApplicationService {
*/
SkillConfigDto getSkillTemplate(InputStream inputStream);
/**
* 获取技能模板(从 classpath 自动读取 skill-template.json
*/
SkillConfigDto getSkillTemplate();
/**
* 校验空间技能权限
*/

View File

@@ -1,12 +0,0 @@
package com.xspaceagi.agent.core.adapter.application;
import com.xspaceagi.agent.core.adapter.dto.PageAppNewSqlDTO;
import com.xspaceagi.agent.core.adapter.dto.PageAppUpdateSqlDTO;
import com.xspaceagi.agent.core.adapter.dto.PageSqlResultDTO;
public interface TableWorkflowForPageApplicationService {
PageSqlResultDTO tableNewSql(PageAppNewSqlDTO pageAppNewSqlDTO);
PageSqlResultDTO tableUpdateSql(PageAppUpdateSqlDTO pageAppUpdateSqlDTO);
}

View File

@@ -88,8 +88,6 @@ public interface WorkflowApplicationService {
WorkflowConfigDto queryPublishedWorkflowConfig(Long workflowId, Long spaceId);
List<WorkflowConfigDto> queryPublishedWorkflowConfigs(List<Long> workflowIds);
/**
* 添加节点
*/

View File

@@ -31,7 +31,4 @@ public class AgentAddDto implements Serializable {
@Schema(description = "类型ChatBot 对话智能体TaskAgent 任务型智能体", requiredMode = Schema.RequiredMode.REQUIRED)
private String type;
@Schema(description = "子类型ChatBot 问答型、General 通用型、Custom 自定义、Flow 流程协作、Group 群组协作")
private String subType;
}

View File

@@ -1,21 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.dto.config.AgentConfigDto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import lombok.Data;
import java.util.List;
@Data
public class AgentConfigCacheStatusVo {
private AgentConfigDto agentConfig;
private List<AgentComponentCacheStatusVo> components;
@Data
public static class AgentComponentCacheStatusVo {
private Published.TargetType targetType;
private Long targetId;
private Long lastUpdated;
}
}

View File

@@ -74,13 +74,4 @@ public class AgentConfigUpdateDto implements Serializable {
@Schema(description = "是否隐藏聊天区域1 隐藏0 不隐藏")
private Integer hideChatArea;
@Schema(description = "是否允许用户在对话框中选择模式, 1 允许,其他不允许")
private Integer allowChooseMode;
@Schema(description = "是否开启询问用户, 1 允许,其他不允许")
private Integer enableAskQuestion;
@Schema(description = "是否开启版本控制, 1 允许,其他不允许")
private Integer enableVersionControl;
}

View File

@@ -27,9 +27,6 @@ public class AgentDetailDto implements Serializable {
@Schema(description = "智能体类型ChatBot 对话智能体PageApp 网页应用智能体")
private String type;
@Schema(description = "子类型,ChatBot->ChatBot、PageApp->PageApp, TaskAgent -> General、Custom、Flow、Group")
private String subType;
@Schema(description = "智能体名称")
private String name;
@@ -110,12 +107,6 @@ public class AgentDetailDto implements Serializable {
@Schema(description = "是否允许用户在对话框中选择自己的电脑, 1 允许,其他不允许")
private Integer allowPrivateSandbox;
@Schema(description = "是否允许用户在对话框中选择模式, 1 允许,其他不允许")
private Integer allowChooseMode;
@Schema(description = "是否开启版本控制, 1 允许,其他不允许")
private Integer enableVersionControl;
@Schema(description = "扩展页面首页")
private String pageHomeIndex;
@@ -139,7 +130,4 @@ public class AgentDetailDto implements Serializable {
@Schema(description = "超出调用限制提示")
private boolean overCallLimit;
@Schema(description = "是否显示发布按钮")
private boolean showPublishBtn;
}

View File

@@ -25,7 +25,6 @@ public class AgentOutputDto implements Serializable {
PROCESSING_MESSAGE,
// 输出消息
MESSAGE,
STATE,
// 最终统计等消息
FINAL_RESULT,

View File

@@ -1,34 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AgentPublishVersionDto implements Serializable {
private String version;
private String gitCommit;
@Builder.Default
private Boolean latest = true;
private List<PackageArtifact> packages;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class PackageArtifact implements Serializable {
private String platform;
private String url;
}
}

View File

@@ -1,16 +1,17 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.spec.enums.MessageTypeEnum;
import com.xspaceagi.agent.core.spec.utils.TikTokensUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.ai.chat.messages.*;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.MessageType;
import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Builder
@@ -18,8 +19,6 @@ import java.util.*;
@NoArgsConstructor
public class ChatMessageDto implements Message {
private static final int MAX_TOKEN_WINDOW_SIZE = 64 * 1024;
private Long index;
private Long tenantId;
@@ -73,10 +72,7 @@ public class ChatMessageDto implements Message {
@Override
public MessageType getMessageType() {
if (role != null) {
return MessageType.valueOf(role.name());
}
return MessageType.USER;
return MessageType.valueOf(role.name());
}
public enum Role {
@@ -88,74 +84,6 @@ public class ChatMessageDto implements Message {
public enum SenderType {
USER,
AGENT,
REMINDER
}
public static List<Message> toMessages(List<ChatMessageDto> messages) {
List<Message> all = new ArrayList<>();
//cachedMessageList转Message
for (ChatMessageDto message : messages) {
if (message.getRole().name().equals(MessageType.USER.name())) {
String text = message.getText();
if (text != null) {
text = text.replaceAll("<user-memory>[\\s\\S]*?</user-memory>", "").trim();
}
all.add(new UserMessage(text == null ? "" : text));
}
if (message.getRole().name().equals(MessageType.ASSISTANT.name())) {
String text = removeSystemTagContent(message.getText());
if (text != null) {
text = text.replaceAll("\n<div><markdown-custom-process[^>]*>.*?</markdown-custom-process></div>\n\n", "");
text = text.replaceAll("<markdown-custom-process[^>]*>.*?</markdown-custom-process>", "");
}
all.add(new AssistantMessage(text));
}
if (message.getRole().name().equals(MessageType.SYSTEM.name())) {
all.add(new SystemMessage(message.getText()));
}
}
Collections.reverse(all);
Iterator<Message> iterator = all.iterator();
int tokenCount = 0;
MessageType messageType = MessageType.ASSISTANT;
while (iterator.hasNext()) {
Message next = iterator.next();
if (messageType != next.getMessageType()) {
iterator.remove();
continue;
}
messageType = messageType == MessageType.USER ? MessageType.ASSISTANT : MessageType.USER;
if (tokenCount >= MAX_TOKEN_WINDOW_SIZE) {
iterator.remove();
} else {
tokenCount += TikTokensUtil.tikTokensCount(next.getText());
}
}
Collections.reverse(all);
removeIfFirstMessageIsAssistant(all);
return all;
}
public static String removeSystemTagContent(String text) {
if (text == null) {
return null;
}
return text.replaceAll("<think>[\\s\\S]*?</think>", "").trim()
.replaceAll("```xml[\\s\\S]*?<tool_.*>[\\s\\S]*?</tool_.*>[\\s\\S]*?```", " ")
.replaceAll("<tool_.*>[\\s\\S]*?</tool_.*>", " ");
}
//移除第一条消息不是User的内容避免像deepseek第一条消息不是User消息时导致无法正常工具调用
private static void removeIfFirstMessageIsAssistant(List<Message> all) {
if (CollectionUtils.isEmpty(all)) {
return;
}
if (all.get(0).getMessageType() == MessageType.ASSISTANT) {
all.remove(0);
removeIfFirstMessageIsAssistant(all);
}
AGENT
}
}

View File

@@ -1,14 +1,15 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import com.xspaceagi.agent.core.spec.enums.ComponentTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import com.xspaceagi.agent.core.spec.enums.ComponentTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ComponentDto implements Serializable {
@@ -18,9 +19,6 @@ public class ComponentDto implements Serializable {
@Schema(description = "空间ID")
private Long spaceId;
@Schema(description = "分组ID")
private Long groupId;
@Schema(description = "组件类型")
private ComponentTypeEnum type;
@@ -56,7 +54,4 @@ public class ComponentDto implements Serializable {
@Schema(description = "是否启用")
private Integer enabled;
@Schema(description = "[插件专用]开发时使用的会话ID")
private Long devAgentConversationId;
}

View File

@@ -36,9 +36,6 @@ public class ConversationDto {
@Schema(description = "会话摘要,当开启长期记忆时,会对每次会话进行总结")
private String summary;
@Schema(description = "会话图标")
private String icon;
@Schema(description = "用户填写的会话变量内容")
private Map<String, Object> variables;
@@ -71,13 +68,6 @@ public class ConversationDto {
private String sandboxSessionId;
@Schema(description = "开发项目所在的空间ID")
private Long devSpaceId;
@Schema(description = "开发模式目标类型 Agent,PageApp,Skill,Plugin")
private String devTargetType;
@Schema(description = "开发模式目标ID")
private String devTargetId;
@Schema(description = "已分享的URI地址比对上了则不需要认证")
private List<String> sharedUris;

View File

@@ -18,7 +18,4 @@ public class ConversationUpdateDto implements Serializable {
@Schema(description = "会话主题可以不传firstMessage与topic二选一")
private String topic;
@Schema(description = "会话图标")
private String icon;
}

View File

@@ -10,7 +10,6 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Data
@NoArgsConstructor
@@ -32,17 +31,4 @@ public class CreateWorkspaceDto implements Serializable {
@Schema(description = "子代理列表")
private List<SubagentDto> subagents;
@Schema(description = "MCP servers配置key为server名称value为server配置")
private Map<String, McpServerConfigDto> mcpServersConfig;
@Schema(description = "工具权限配置")
private PermissionsConfigDto permissionsConfig;
@Schema(description = "Hooks配置key为事件类型(如PreToolUse)value为Hook规则列表")
private Map<String, List<HookEntryDto>> hooksConfig;
@Schema(description = "Hook外挂脚本列表")
private List<HookScriptDto> hookScripts;
}

View File

@@ -1,25 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GenerateInfoAiDto implements Serializable {
@JsonPropertyDescription("项目名称简洁有意义不超过20个字符")
private String name;
@JsonPropertyDescription("项目描述一句话概括功能和用途不超过100个字符")
private String description;
@JsonPropertyDescription("SVG图标内容根元素必须为 <svg width=\"200\" height=\"200\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">;第一个元素必须是铺满画布的背景 rectx=0,y=0,width=100,height=100主图形需占满大部分画布约10-90坐标范围不要留大空白边距不使用外部资源")
private String svgIcon;
}

View File

@@ -1,22 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "AI生成项目信息请求")
public class GenerateInfoReqDto implements Serializable {
@Schema(description = "用户需求描述", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank
private String prompt;
}

View File

@@ -1,26 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "AI生成项目信息结果")
public class GenerateInfoResultDto implements Serializable {
@Schema(description = "项目名称")
private String name;
@Schema(description = "项目描述")
private String description;
@Schema(description = "图标文件访问URL")
private String iconUrl;
}

View File

@@ -1,25 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Hook规则条目")
public class HookEntryDto implements Serializable {
// 过滤条件(如 "Bash" 仅针对 Bash 工具)
@Schema(description = "匹配器,如工具名或正则表达式")
private String matcher;
@Schema(description = "Hook配置列表每项为解析后的 JSON 对象")
private List<Object> hooks;
}

View File

@@ -1,32 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "单个Hook脚本配置")
public class HookItemDto implements Serializable {
@Schema(description = "Hook类型" +
"command - 运行 shell 脚本、" +
"http - 调用 HTTP 端点、" +
"mcp_tool - 调用 MCP 工具、" +
"prompt - 向 Claude 发送提示、" +
"agent - 生成 subagent")
private String type;
@Schema(description = "要执行的命令")
private String command;
@Schema(description = "命令参数列表")
private List<String> args;
}

View File

@@ -1,24 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Hook外挂脚本DTO")
public class HookScriptDto implements Serializable {
// 比如传的相对路径hooks/my-script.sh实际存放路径是 ${PROJECT_DIR}/.claude/hooks/my-script.sh
@Schema(description = "脚本相对路径,如 hooks/my-script.sh")
private String path;
@Schema(description = "脚本文件内容")
private String content;
}

View File

@@ -1,89 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Arrays;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "初始化项目模板请求DTO")
public class InitProjectTemplateDto implements Serializable {
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long userId;
@Schema(description = "会话ID", requiredMode = Schema.RequiredMode.REQUIRED)
@JsonProperty("cId")
private Long cId;
@Schema(description = "项目类型", requiredMode = Schema.RequiredMode.REQUIRED)
private ProjectType projectType;
@Schema(description = "编程语言projectType=AGENT时必填")
private ProgrammingLanguage programmingLanguage;
public enum ProjectType {
AGENT("agent"),
SKILL("skill");
private final String value;
ProjectType(String value) {
this.value = value;
}
@JsonValue
public String getValue() {
return value;
}
@JsonCreator
public static ProjectType fromValue(String value) {
if (value == null) {
return null;
}
return Arrays.stream(values())
.filter(e -> e.value.equalsIgnoreCase(value))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Unknown projectType: " + value));
}
}
public enum ProgrammingLanguage {
TYPESCRIPT("typescript"),
PYTHON("python");
private final String value;
ProgrammingLanguage(String value) {
this.value = value;
}
@JsonValue
public String getValue() {
return value;
}
@JsonCreator
public static ProgrammingLanguage fromValue(String value) {
if (value == null) {
return null;
}
return Arrays.stream(values())
.filter(e -> e.value.equalsIgnoreCase(value))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Unknown programmingLanguage: " + value));
}
}
}

View File

@@ -1,29 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "安装项目依赖请求DTO")
public class InstallProjectDto implements Serializable {
@Schema(description = "用户ID", hidden = true)
private Long userId;
@Schema(description = "会话ID", requiredMode = Schema.RequiredMode.REQUIRED)
@JsonProperty("cId")
private Long cId;
@Schema(description = "编程语言", requiredMode = Schema.RequiredMode.REQUIRED)
private InitProjectTemplateDto.ProgrammingLanguage programmingLanguage;
}

View File

@@ -1,34 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "MCP Server配置")
public class McpServerConfigDto implements Serializable {
@Schema(description = "MCP Server类型stdio、http、streamable-http、sse、ws")
private String type;
@Schema(description = "远程HTTP端点URL")
private String url;
@Schema(description = "启动命令,如 npx、pythontype为stdio时使用")
private String command;
@Schema(description = "命令参数列表type为stdio时使用")
private List<String> args;
@Schema(description = "环境变量type为stdio时使用")
private Map<String, String> env;
}

View File

@@ -1,30 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PackageAgentDto implements Serializable {
@NotNull
private Long userId;
@NotNull
@JsonProperty("cId")
private Long cId;
@NotNull
private Long agentId;
@NotNull
private InitProjectTemplateDto.ProgrammingLanguage programmingLanguage;
}

View File

@@ -1,38 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.dto.config.Arg;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class PageAppNewSqlDTO {
@Schema(description = "空间ID环境变量中读取 DEV_SPACE_ID", requiredMode = Schema.RequiredMode.REQUIRED, hidden = true)
private Long spaceId;
@Schema(description = "项目ID环境变量中读取 DEV_PROJECT_ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String projectId;
@Schema(description = "给接口一个分组名称,便于管理,尽量将所有接口放在一个分组里")
private String groupName;
@Schema(description = "分组描述")
private String groupDescription;
@Schema(description = "参数,使用一级即可")
private List<Arg> args;
@Schema(description = "表ID")
private Long tableId;
@Schema(description = "SQLVariable placeholders do not need single quotes, e.g., SELECT * FROM custom_table WHERE agent_id = {{agent_id}};For LIKE fuzzy queries, use $+variable, e.g., SELECT * FROM custom_table WHERE agent_name LIKE '%${{agent_name}}%';", requiredMode = Schema.RequiredMode.REQUIRED)
private String sql;
@Schema(description = "API名称", requiredMode = Schema.RequiredMode.REQUIRED)
private String apiName;
@Schema(description = "API描述", requiredMode = Schema.RequiredMode.REQUIRED)
private String description;
}

View File

@@ -1,29 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.dto.config.Arg;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class PageAppUpdateSqlDTO {
@Schema(description = "项目ID环境变量中读取 DEV_PROJECT_ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String projectId;
@Schema(description = "API ID")
private Long apiId;
@Schema(description = "参数,使用一级即可")
private List<Arg> args;
@Schema(description = "SQLVariable placeholders do not need single quotes, e.g., SELECT * FROM custom_table WHERE agent_id = {{agent_id}};For LIKE fuzzy queries, use $+variable, e.g., SELECT * FROM custom_table WHERE agent_name LIKE '%${{agent_name}}%';", requiredMode = Schema.RequiredMode.REQUIRED)
private String sql;
@Schema(description = "API名称", requiredMode = Schema.RequiredMode.REQUIRED)
private String apiName;
@Schema(description = "API描述", requiredMode = Schema.RequiredMode.REQUIRED)
private String description;
}

View File

@@ -1,14 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class PageSqlResultDTO {
@Schema(description = "接口ID")
private Long apiId;
@Schema(description = "接口Schema可用于调试")
private String apiSchema;
}

View File

@@ -1,27 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "工具权限配置")
public class PermissionsConfigDto implements Serializable {
@Schema(description = "自动允许的工具规则列表,如 [\"Bash(npm run lint)\", \"Read(~/.zshrc)\"]")
private List<String> allow;
@Schema(description = "拒绝的工具规则列表,如 [\"Bash(curl *)\", \"Read(./.env)\"]")
private List<String> deny;
@Schema(description = "需要询问的工具规则列表,如 [\"Bash(git push *)\"]")
private List<String> ask;
}

View File

@@ -21,6 +21,4 @@ public class PluginExecuteRequestDto implements Serializable {
private Map<String, Object> params;
private boolean test;
private String apiKey;
}

View File

@@ -24,7 +24,4 @@ public class PluginUpdateDto<T> implements Serializable {
@Schema(description = "插件配置")
private T config;
@Schema(description = "开发智能体的会话ID")
private Long devAgentConversationId;
}

View File

@@ -1,24 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ProjectCreateDTO {
@Schema(description = "项目所属空间ID不传则默认放在个人空间,可选")
private Long spaceId;
@Schema(description = "目标项目类型", requiredMode = Schema.RequiredMode.REQUIRED)
private Published.TargetType targetType;
@Schema(description = "目标项目名称,可选")
private String name;
@Schema(description = "目标项目创建者ID,可选", hidden = true)
private Long creatorId;
@Schema(description = "编程语言选择")
private InitProjectTemplateDto.ProgrammingLanguage programmingLanguage;
}

View File

@@ -1,18 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ProjectCreateResultDTO {
@Schema(description = "目标项目类型")
private Published.TargetType targetType;
@Schema(description = "目标项目ID")
private String targetId;
@Schema(description = "开发智能体的关联的会话ID")
private Long conversationId;
}

View File

@@ -1,17 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import com.xspaceagi.agent.core.spec.enums.PluginTypeEnum;
import com.xspaceagi.agent.core.spec.enums.UsageScenarioEnum;
import com.xspaceagi.custompage.sdk.dto.SourceTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import com.xspaceagi.agent.core.spec.enums.PluginTypeEnum;
import com.xspaceagi.agent.core.spec.enums.UsageScenarioEnum;
import com.xspaceagi.custompage.sdk.dto.SourceTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class PublishedDto implements Serializable {
@@ -22,8 +23,6 @@ public class PublishedDto implements Serializable {
private Long spaceId;
private Long groupId;
@Schema(description = "目标对象智能体、工作流、插件ID")
private Published.TargetType targetType;
@@ -103,9 +102,6 @@ public class PublishedDto implements Serializable {
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "价格类型, ONE_TIME 次SECOND 秒MILLION_TOKEN 百万Token")
private String pricingType;
@Schema(description = "是否已订阅,对智能体和技能有效")
private boolean subscribed;

View File

@@ -23,15 +23,9 @@ public class PublishedQueryDto implements Serializable {
@Schema(description = "子类型")
private Published.TargetSubType targetSubType;
@Schema(description = "智能体类型")
private List<String> agentTypes;
@Schema(description = "页码")
private Integer page;
@Schema(description = "上一页最后一条数据的时间戳与page二选一")
private Long lastTimestamp;
@Schema(description = "每页数量")
private Integer pageSize;
@@ -71,21 +65,12 @@ public class PublishedQueryDto implements Serializable {
@Schema(description = "查询的ID范围比如只查看推荐、官方标识的组件等", hidden = true)
private List<Long> targetIds;
@Schema(description = "推荐列表", hidden = true)
private List<Long> recommendIds;
@Schema(description = "排除列表", hidden = true)
private List<Long> excludeIds;
@Schema(description = "是否只返回官方标识的内容")
private Boolean official;
@Schema(description = "适用场景筛选参数,如 [TaskAgent, PageApp]")
private List<UsageScenarioEnum> usageScenarios;
@Schema(description = "是否返回配置信息", hidden = true)
private boolean returnConfig;
/**
* 获取页码
*

View File

@@ -1,46 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.repository.entity.Published;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class ResourceGroupDto implements Serializable {
private Long id;
private Long spaceId;
private String name;
private String description;
private String icon;
private Integer toolCount;
private String type;
@Schema(description = "目标对象(智能体、工作流、插件)类型,分组中第一个工具的类型")
private Published.TargetType targetType;
@Schema(description = "目标对象工作流、插件ID,分组中第一个工具的ID")
private Long targetId;
private Date created;
private Date modified;
@Schema(description = "是否需要付费")
private boolean paymentRequired;
@Schema(description = "发布者信息")
private PublishUserDto publishUser;
@Schema(description = "工具列表,选择使用")
private List<PublishedDto> tools;
}

View File

@@ -1,6 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import com.xspaceagi.agent.core.adapter.repository.entity.ResourceGroupRelation;
public class ResourceGroupRelationDto extends ResourceGroupRelation {
}

View File

@@ -56,7 +56,4 @@ public class SkillConfigDto implements Serializable {
@Schema(description = "技能发布zip代理下载地址")
private String zipFileUrl;
@Schema(description = "技能开发智能体的关联的会话ID")
private Long devAgentConversationId;
}

View File

@@ -23,6 +23,4 @@ public class SkillPublishedConfigDto {
@Schema(description = "技能发布zip代理下载地址")
private String zipFileUrl;
private Long devAgentConversationId;
}

View File

@@ -1,10 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto;
import lombok.Data;
@Data
public class SortUpdateDTO {
private Long id;
private Integer sort;
}

View File

@@ -17,6 +17,4 @@ public class TopicGenDto implements Serializable {
@JsonPropertyDescription("Contextually appropriate titles, ≤50 characters. Do not generate titles unrelated to the topic. For meaningless contexts, such as user input errors or arbitrary content, no summary is needed; return empty. Output language based on the <content>")
private String topic;
@JsonPropertyDescription("SVG icon, viewBox='0 0 100 100'. Do not generate icons unrelated to the topic. For meaningless contexts, such as user input errors or arbitrary content, no icon is needed; return empty. Output language based on the <content>. \nSVG requirements: \n- Use simple geometric shapes and clean lines \n- Use a modern color palette (gradient or solid colors) \n- Must be a valid, self-contained SVG with no external references \n- Keep it simple and recognizable at small sizes \n- The SVG should be visually appealing and professional")
private String svgIcon;
}

View File

@@ -48,9 +48,6 @@ public class TryReqDto implements Serializable {
@Schema(description = "请求ID", hidden = true)
private String requestId;
@Schema(description = "代理模式")
private String agentMode;
@Data
public static class SelectedComponentDto {
@Schema(description = "组件ID")

View File

@@ -33,8 +33,6 @@ public class WorkflowExecuteRequestDto implements Serializable {
private boolean test;
private String apiKey;
public Map<String, Object> getParams() {
return params == null ? params = new HashMap<>() : params;
}

View File

@@ -2,7 +2,10 @@ package com.xspaceagi.agent.core.adapter.dto.config;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.xspaceagi.agent.core.adapter.dto.*;
import com.xspaceagi.agent.core.adapter.dto.CreatorDto;
import com.xspaceagi.agent.core.adapter.dto.GuidQuestionDto;
import com.xspaceagi.agent.core.adapter.dto.PublishUserDto;
import com.xspaceagi.agent.core.adapter.dto.StatisticsDto;
import com.xspaceagi.agent.core.adapter.dto.config.bind.*;
import com.xspaceagi.agent.core.adapter.repository.entity.AgentComponentConfig;
import com.xspaceagi.agent.core.adapter.repository.entity.AgentConfig;
@@ -33,9 +36,6 @@ public class AgentConfigDto implements Serializable {
@Schema(description = "类型ChatBot 对话智能体PageApp 网页应用智能体, TaskAgent 任务型智能体")
private String type;
@Schema(description = "子类型,ChatBot->ChatBot、PageApp->PageApp, TaskAgent -> General、Custom、Flow、Group")
private String subType;
@Schema(description = "商户ID")
private Long tenantId; // 商户ID
@@ -111,12 +111,9 @@ public class AgentConfigDto implements Serializable {
@Schema(description = "是否收藏", hidden = true)
private boolean isCollected;
@Schema(description = "debug调试会话ID")
@Schema(description = "开发会话ID")
private Long devConversationId;
@Schema(description = "开发Agent的会话ID")
private Long devAgentConversationId;
@Schema(description = "发布时间如果不为空与当前modified时间做对比如果发布时间小于modified则前端显示有更新未发布")
private Date publishDate;
@@ -165,23 +162,6 @@ public class AgentConfigDto implements Serializable {
@Schema(description = "是否允许用户在对话框中选择自己的电脑, 1 允许,其他不允许")
private Integer allowPrivateSandbox;
@Schema(description = "是否允许用户在对话框中选择模式, 1 允许,其他不允许")
private Integer allowChooseMode;
@Schema(description = "是否开启询问用户, 1 允许,其他不允许")
private Integer enableAskQuestion;
@Schema(description = "是否开启版本控制, 1 允许,其他不允许")
private Integer enableVersionControl;
@Schema(description = "发布版本列表")
private List<AgentPublishVersionDto> publishVersion;
@Schema(description = "已发布的空间ID", hidden = true)
private List<Long> publishedSpaceIds;
private List<CustomPageMenu> customPageMenus;
public String getPageHomeIndex() {
//设置默认页面首页
if (getAgentComponentConfigList() != null) {
@@ -269,10 +249,6 @@ public class AgentConfigDto implements Serializable {
VariableConfigDto variableConfigDto = JSON.parseObject(componentConfig.getBindConfig().toString(), VariableConfigDto.class);
componentConfig.setBindConfig(variableConfigDto);
}
case Hook -> {
HookConfigDto hookConfigDto = JSON.parseObject(componentConfig.getBindConfig().toString(), HookConfigDto.class);
componentConfig.setBindConfig(hookConfigDto);
}
case Mcp -> {
McpBindConfigDto mcpBindConfigDto = JSON.parseObject(componentConfig.getBindConfig().toString(), McpBindConfigDto.class);
componentConfig.setBindConfig(mcpBindConfigDto);
@@ -332,11 +308,6 @@ public class AgentConfigDto implements Serializable {
componentConfig.setBindConfig(new VariableConfigDto());
}
}
case Hook -> {
if (!(componentConfig.getBindConfig() instanceof HookConfigDto)) {
componentConfig.setBindConfig(new HookConfigDto());
}
}
case Mcp -> {
if (!(componentConfig.getBindConfig() instanceof McpBindConfigDto)) {
componentConfig.setBindConfig(new McpBindConfigDto());
@@ -379,12 +350,4 @@ public class AgentConfigDto implements Serializable {
@Schema(description = "是否选中")
private boolean selected;
}
public enum AgentType {
ChatBot, PageApp, TaskAgent
}
public enum AgentSubType {
ChatBot, PageApp, General, Custom, Flow, Group
}
}

View File

@@ -70,9 +70,6 @@ public class Arg implements Serializable {
private Long loopId;
@Schema(description = "参数更新策略")
private UpdateStrategy updateStrategy;
public void setSubArgs(List<Arg> subArgs) {
if (this.subArgs != null) {
return;
@@ -124,14 +121,7 @@ public class Arg implements Serializable {
Number,
//自动识别
AutoRecognition,
File,
Radio,
FixedValue,
}
public enum UpdateStrategy {
REPLACE, // Overwrite the existing value entirely
APPEND // Append to the existing value (string concatenation, list append, or numeric addition)
}
public static List<Arg> updateBindConfigArgs(String startKey, List<Arg> bindConfigArgs, List<Arg> configInputArgs) {

View File

@@ -1,30 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto.config;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class HookConfigDto implements Serializable {
@Schema(description = "Hook列表")
private List<Hook> hooks;
@Data
public static class Hook {
@Schema(description = "Hook名称")
private String name;
@Schema(description = "Hook事件")
private String event;
@Schema(description = "Hook匹配规则")
private String matcher;
@Schema(description = "Hook类型")
private String type;
@Schema(description = "Hook配置")
private String config;
@Schema(description = "Hook状态,1 启用0 停用")
private Integer status;
}
}

View File

@@ -34,9 +34,6 @@ public class McpBindConfigDto implements Serializable {
@Schema(description = "是否默认选中0-否1-是")
private Integer defaultSelected;
@Schema(description = "是否需要审批0-否1-是")
private Integer callApproval;
public enum McpInvokeTypeEnum {
//自动调用、按需调用、手动选择、手动选择和按需调用
AUTO, ON_DEMAND, MANUAL, MANUAL_ON_DEMAND

View File

@@ -31,9 +31,6 @@ public class PluginBindConfigDto implements Serializable {
@Schema(description = "是否默认选中0-否1-是")
private Integer defaultSelected;
@Schema(description = "是否需要审批0-否1-是")
private Integer callApproval;
public enum PluginInvokeTypeEnum {
//自动调用、按需调用、手动选择、手动选择和按需调用
AUTO, ON_DEMAND, MANUAL, MANUAL_ON_DEMAND

View File

@@ -37,9 +37,6 @@ public class WorkflowBindConfigDto implements Serializable {
// 相同requestId时是否使用缓存的结果问答场景
private boolean useResultCache;
@Schema(description = "是否需要审批0-否1-是")
private Integer callApproval;
public enum WorkflowInvokeTypeEnum {
//自动调用、按需调用
AUTO, ON_DEMAND, MANUAL, MANUAL_ON_DEMAND

View File

@@ -72,11 +72,6 @@ public class PluginDto implements Serializable {
@Schema(description = "已发布的空间ID", hidden = true)
private List<Long> publishedSpaceIds;
@Schema(description = "开发时使用的会话ID")
private Long devAgentConversationId;
private String toolId;
public static PluginDto convertToPluginDto(String config) {
if (config == null) {
return null;

View File

@@ -1,33 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto.config.workflow;
import com.xspaceagi.agent.core.adapter.dto.config.AgentConfigDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class AgentNodeConfigDto extends NodeConfigDto {
@Schema(description = "智能体ID")
private Long agentId;
@Schema(description = "节点名称")
private String name;
@Schema(description = "节点描述")
private String description;
@Schema(description = "节点图标")
private String icon;
@Schema(description = "补充提示词")
private String extraPrompt;
@Schema(description = "自身循环次数")
private int selfLoopTimes;
@Schema(description = "循环提醒提示词")
private String reminderPrompt;
@Schema(description = "智能体配置信息,执行阶段使用")
private AgentConfigDto agentConfigDto;
}

View File

@@ -35,9 +35,6 @@ public class IntentRecognitionNodeConfigDto extends NodeConfigDto {
@Schema(description = "token上限")
private Integer maxTokens; // token上限
@Schema(description = "系统提示词")
private String systemPrompt;
@Schema(description = "补充提示词")
private String extraPrompt;
@@ -58,22 +55,12 @@ public class IntentRecognitionNodeConfigDto extends NodeConfigDto {
@Schema(description = "唯一标识")
private String uuid;
@Schema(description = "意图名称")
private String name;
@Schema(description = "意图描述,兜底匹配")
@Schema(description = "意图描述")
private String intent;
@Schema(description = "意图类型,NORMAL正常添加配置,OTHER其他意图")
private IntentTypeEnum intentType;
//条件参数关系
@Schema(description = "条件参数之间关系")
private ConditionNodeConfigDto.ConditionTypeEnum conditionType;
//参数列表配置
@Schema(description = "参数列表配置")
private List<ConditionNodeConfigDto.ConditionArgDto> conditionArgs;
@Schema(description = "关联下级节点id列表")
private List<Long> nextNodeIds;

View File

@@ -1,95 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto.config.workflow;
import com.xspaceagi.agent.core.adapter.dto.config.Arg;
import com.xspaceagi.agent.core.adapter.dto.config.InputArg;
import com.xspaceagi.agent.core.adapter.dto.config.OutputArg;
import com.xspaceagi.agent.core.spec.enums.DataTypeEnum;
import com.xspaceagi.system.spec.utils.I18nUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@Data
public class KnowledgeInsertNodeConfigDto extends NodeConfigDto {
@Schema(description = "知识库ID配置", requiredMode = Schema.RequiredMode.REQUIRED)
private Long knowledgeBaseId;
@Schema(description = "节点名称")
private String name;
@Schema(description = "节点描述")
private String description;
@Schema(description = "节点图标")
private String icon;
/**
* 公共节点配置转条件节点配置
*
* @return 条件节点配置
*/
public static KnowledgeInsertNodeConfigDto addFrom(Long knowledgeBaseId) {
KnowledgeInsertNodeConfigDto knowledgeInsertNodeConfigDto = new KnowledgeInsertNodeConfigDto();
knowledgeInsertNodeConfigDto.setKnowledgeBaseId(knowledgeBaseId);
//设置默认输入参数和输出参数
List<Arg> args = new ArrayList<>();
InputArg arg = new InputArg();
arg.setKey(UUID.randomUUID().toString().replace("-", ""));
arg.setName("title");
arg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.title.description"));
arg.setDataType(DataTypeEnum.String);
args.add(arg);
arg = new InputArg();
arg.setKey(UUID.randomUUID().toString().replace("-", ""));
arg.setName("content");
arg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.content.description"));
arg.setDataType(DataTypeEnum.String);
args.add(arg);
arg = new InputArg();
arg.setKey(UUID.randomUUID().toString().replace("-", ""));
arg.setName("docUrl");
arg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.docUrl.description"));
arg.setDataType(DataTypeEnum.String);
args.add(arg);
//segment
arg = new InputArg();
arg.setKey(UUID.randomUUID().toString().replace("-", ""));
arg.setName("segment");
arg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.segment.description"));
arg.setDataType(DataTypeEnum.String);
arg.setBindValue("WORDS");
args.add(arg);
arg = new InputArg();
arg.setKey(UUID.randomUUID().toString().replace("-", ""));
arg.setName("words");
arg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.words.description"));
arg.setDataType(DataTypeEnum.Integer);
arg.setBindValue("800");
args.add(arg);
knowledgeInsertNodeConfigDto.setInputArgs(args);
List<Arg> outputArgs = new ArrayList<>();
Arg outArg = new OutputArg();
outArg.setName("success");
outArg.setDataType(DataTypeEnum.Boolean);
outArg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.success.description"));
outputArgs.add(outArg);
outArg = new OutputArg();
outArg.setName("message");
outArg.setDataType(DataTypeEnum.String);
outArg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.message.description"));
outputArgs.add(outArg);
outArg = new OutputArg();
outArg.setName("docId");
outArg.setDataType(DataTypeEnum.Number);
outArg.setDescription(I18nUtil.systemMessage("Backend.WorkflowKbArgs.docId.description"));
outputArgs.add(outArg);
knowledgeInsertNodeConfigDto.setOutputArgs(outputArgs);
return knowledgeInsertNodeConfigDto;
}
}

View File

@@ -11,8 +11,6 @@ import java.util.Map;
@Data
public class NodeConfigDto implements Serializable {
private ContextPassingType contextPassingType;
@Schema(description = "扩展字段,用于前端存储画布位置等相关配置")
private Map<String, Object> extension;
@@ -24,9 +22,4 @@ public class NodeConfigDto implements Serializable {
@Schema(description = "异常处理配置")
private ExceptionHandleConfigDto exceptionHandleConfig;
public enum ContextPassingType {
Auto,
Manual
}
}

View File

@@ -1,6 +1,5 @@
package com.xspaceagi.agent.core.adapter.dto.config.workflow;
import com.xspaceagi.agent.core.adapter.dto.config.Arg;
import com.xspaceagi.agent.core.adapter.dto.config.ModelConfigDto;
import com.xspaceagi.agent.core.adapter.dto.config.bind.ModelBindConfigDto;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -36,9 +35,6 @@ public class QaNodeConfigDto extends NodeConfigDto {
@NotNull(message = "Answer type is required")
private AnswerTypeEnum answerType;
@Schema(description = "表单参数")
private List<Arg> formArgs;
//从回复中提取字段
@Schema(description = "从回复中提取字段")
private Boolean extractField;
@@ -57,8 +53,7 @@ public class QaNodeConfigDto extends NodeConfigDto {
public enum AnswerTypeEnum {
//直接回答、选项回答
TEXT,
SELECT,
FORM
SELECT
}
@Data

View File

@@ -44,12 +44,6 @@ public class WorkflowConfigDto {
@Schema(description = "图标地址")
private String icon;
@Schema(description = "工作流类型: Workflow、AgentFlow")
private String type;
@Schema(description = "AgentFlow时所属AgentID")
private Long agentId;
@Schema(description = "开始节点", hidden = true)
private WorkflowNodeDto startNode;
@@ -126,12 +120,6 @@ public class WorkflowConfigDto {
case Knowledge:
nodeConfigDto = JSON.parseObject(config, KnowledgeNodeConfigDto.class);
break;
case KnowledgeInsert:
nodeConfigDto = JSON.parseObject(config, KnowledgeInsertNodeConfigDto.class);
break;
case Agent:
nodeConfigDto = JSON.parseObject(config, AgentNodeConfigDto.class);
break;
case Loop:
nodeConfigDto = JSON.parseObject(config, LoopNodeConfigDto.class);
break;
@@ -228,9 +216,4 @@ public class WorkflowConfigDto {
}
return null;
}
public enum Type {
Workflow,
AgentFlow
}
}

View File

@@ -0,0 +1,33 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Builder
public class DigitalEmployeeAdminActionDto {
private Long id;
@JsonProperty("client_key_masked")
private String clientKeyMasked;
@JsonProperty("device_id")
private String deviceId;
@JsonProperty("entity_type")
private String entityType;
@JsonProperty("entity_id")
private String entityId;
private String action;
private String status;
@JsonProperty("reason_codes")
private List<String> reasonCodes;
@JsonProperty("request_payload")
private Map<String, Object> requestPayload;
@JsonProperty("created_at")
private Date createdAt;
@JsonProperty("processed_at")
private Date processedAt;
}

View File

@@ -0,0 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeAdminActionPageDto {
private Long total;
@JsonProperty("page_no")
private Long pageNo;
@JsonProperty("page_size")
private Long pageSize;
private List<DigitalEmployeeAdminActionDto> records;
}

View File

@@ -0,0 +1,23 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Map;
@Data
public class DigitalEmployeeAdminActionRequestDto {
@JsonProperty("sync_record_id")
private Long syncRecordId;
@JsonProperty("client_key")
private String clientKey;
@JsonProperty("device_id")
private String deviceId;
@JsonProperty("entity_type")
private String entityType;
@JsonProperty("entity_id")
private String entityId;
private String action;
@JsonProperty("request_payload")
private Map<String, Object> requestPayload;
}

View File

@@ -0,0 +1,17 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeAdminActionResultDto {
private Boolean ok;
private String status;
@JsonProperty("reason_codes")
private List<String> reasonCodes;
private DigitalEmployeeAdminActionDto action;
}

View File

@@ -0,0 +1,33 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Map;
@Data
public class DigitalEmployeeAdminRecordRequestDto {
@JsonAlias("sync_record_id")
private Long syncRecordId;
@JsonAlias("client_key")
private String clientKey;
@JsonAlias("device_id")
private String deviceId;
@JsonAlias("entity_type")
private String entityType;
@JsonAlias("entity_id")
private String entityId;
private String status;
private String endpoint;
@JsonAlias("remote_id")
private String remoteId;
@JsonAlias("archive_location")
private String archiveLocation;
@JsonAlias("archive_summary")
private Map<String, Object> archiveSummary;
private String reason;
@JsonProperty("request_payload")
@JsonAlias("requestPayload")
private Map<String, Object> requestPayload;
}

View File

@@ -0,0 +1,17 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeAdminRecordResultDto {
private Boolean ok;
private String status;
@JsonProperty("reason_codes")
private List<String> reasonCodes;
private DigitalEmployeeAdminActionDto record;
}

View File

@@ -0,0 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeAdminWorkbenchPageDto {
private Long total;
@JsonProperty("page_no")
private Long pageNo;
@JsonProperty("page_size")
private Long pageSize;
private List<DigitalEmployeeAdminWorkbenchRowDto> records;
}

View File

@@ -0,0 +1,364 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Builder
public class DigitalEmployeeAdminWorkbenchRowDto {
private String view;
@JsonProperty("sync_record_id")
private Long syncRecordId;
@JsonProperty("sync_record_url")
private String syncRecordUrl;
@JsonProperty("entity_type")
private String entityType;
@JsonProperty("entity_id")
private String entityId;
private String operation;
private String title;
private String status;
private String kind;
private String category;
private String level;
private String priority;
private String summary;
@JsonProperty("plan_id")
private String planId;
@JsonProperty("task_id")
private String taskId;
@JsonProperty("run_id")
private String runId;
@JsonProperty("step_id")
private String stepId;
@JsonProperty("dependency_status")
private String dependencyStatus;
@JsonProperty("lease_state")
private String leaseState;
@JsonProperty("lease_source")
private String leaseSource;
@JsonProperty("dispatch_status")
private String dispatchStatus;
@JsonProperty("dispatch_policy_key")
private String dispatchPolicyKey;
@JsonProperty("orchestration_id")
private String orchestrationId;
@JsonProperty("trigger_source")
private String triggerSource;
@JsonProperty("approval_id")
private String approvalId;
@JsonProperty("approval_policy_id")
private String approvalPolicyId;
@JsonProperty("conflict_policy_id")
private String conflictPolicyId;
@JsonProperty("decision_guard_status")
private String decisionGuardStatus;
@JsonProperty("batch_accept_remote_disabled")
private Boolean batchAcceptRemoteDisabled;
@JsonProperty("auto_decision_disabled")
private Boolean autoDecisionDisabled;
@JsonProperty("policy_reason")
private String policyReason;
@JsonProperty("governance_policy_id")
private String governancePolicyId;
@JsonProperty("policy_guard_status")
private String policyGuardStatus;
@JsonProperty("hard_interrupt_disabled")
private Boolean hardInterruptDisabled;
@JsonProperty("artifact_id")
private String artifactId;
@JsonProperty("artifact_graph_id")
private String artifactGraphId;
@JsonProperty("artifact_group_id")
private String artifactGroupId;
@JsonProperty("group_key")
private String groupKey;
@JsonProperty("related_artifact_ids")
private List<String> relatedArtifactIds;
@JsonProperty("artifact_count")
private Long artifactCount;
@JsonProperty("device_count")
private Long deviceCount;
@JsonProperty("version_count")
private Long versionCount;
@JsonProperty("latest_artifact_id")
private String latestArtifactId;
@JsonProperty("version_key")
private String versionKey;
@JsonProperty("cleanup_request_id")
private String cleanupRequestId;
@JsonProperty("cleanup_eligible_count")
private Long cleanupEligibleCount;
@JsonProperty("batch_cleanup_disabled")
private Boolean batchCleanupDisabled;
@JsonProperty("retention_conflict_status")
private String retentionConflictStatus;
@JsonProperty("cleanup_conflict_status")
private String cleanupConflictStatus;
@JsonProperty("remote_delete_disabled")
private Boolean remoteDeleteDisabled;
@JsonProperty("notification_id")
private String notificationId;
@JsonProperty("collaboration_thread_id")
private String collaborationThreadId;
@JsonProperty("subscription_policy_id")
private String subscriptionPolicyId;
@JsonProperty("subscription_conflict_status")
private String subscriptionConflictStatus;
@JsonProperty("notification_policy_id")
private String notificationPolicyId;
@JsonProperty("subscription_status")
private String subscriptionStatus;
@JsonProperty("desktop_enabled")
private Boolean desktopEnabled;
@JsonProperty("minimum_level")
private String minimumLevel;
private String channel;
@JsonProperty("delivery_status")
private String deliveryStatus;
@JsonProperty("delivery_attempt_id")
private String deliveryAttemptId;
@JsonProperty("send_request_id")
private String sendRequestId;
@JsonProperty("real_push_disabled")
private Boolean realPushDisabled;
@JsonProperty("conflict_status")
private String conflictStatus;
@JsonProperty("report_id")
private String reportId;
@JsonProperty("daily_report_fact_id")
private String dailyReportFactId;
@JsonProperty("daily_report_table")
private String dailyReportTable;
@JsonProperty("daily_report_materialized")
private Boolean dailyReportMaterialized;
@JsonProperty("daily_report_physical_fact_status")
private String dailyReportPhysicalFactStatus;
@JsonProperty("send_record_id")
private String sendRecordId;
@JsonProperty("send_channel")
private String sendChannel;
@JsonProperty("send_request_status")
private String sendRequestStatus;
@JsonProperty("send_record_status")
private String sendRecordStatus;
@JsonProperty("formal_daily_report_page_disabled")
private Boolean formalDailyReportPageDisabled;
@JsonProperty("external_send_disabled")
private Boolean externalSendDisabled;
@JsonProperty("third_party_channel_disabled")
private Boolean thirdPartyChannelDisabled;
@JsonProperty("approval_decision_status")
private String approvalDecisionStatus;
@JsonProperty("advanced_query_supported")
private Boolean advancedQuerySupported;
@JsonProperty("aggregation_scope")
private String aggregationScope;
@JsonProperty("materialized_source")
private String materializedSource;
@JsonProperty("daily_report_approval_id")
private String dailyReportApprovalId;
@JsonProperty("daily_report_approval_action")
private String dailyReportApprovalAction;
@JsonProperty("daily_report_approval_actor")
private String dailyReportApprovalActor;
@JsonProperty("daily_report_approval_reason")
private String dailyReportApprovalReason;
@JsonProperty("daily_report_approval_recorded_at")
private String dailyReportApprovalRecordedAt;
@JsonProperty("route_decision_id")
private String routeDecisionId;
@JsonProperty("service_id")
private String serviceId;
@JsonProperty("service_lease_id")
private String serviceLeaseId;
@JsonProperty("lease_holder")
private String leaseHolder;
@JsonProperty("lease_expires_at")
private String leaseExpiresAt;
@JsonProperty("restart_record_id")
private String restartRecordId;
@JsonProperty("restart_count")
private Long restartCount;
@JsonProperty("last_restart_at")
private String lastRestartAt;
@JsonProperty("recovery_policy_id")
private String recoveryPolicyId;
@JsonProperty("auto_recovery_status")
private String autoRecoveryStatus;
@JsonProperty("service_start_disabled")
private Boolean serviceStartDisabled;
@JsonProperty("service_stop_disabled")
private Boolean serviceStopDisabled;
@JsonProperty("lease_takeover_disabled")
private Boolean leaseTakeoverDisabled;
@JsonProperty("auto_recovery_disabled")
private Boolean autoRecoveryDisabled;
@JsonProperty("recovery_action_request_id")
private String recoveryActionRequestId;
@JsonProperty("start_request_id")
private String startRequestId;
@JsonProperty("stop_request_id")
private String stopRequestId;
@JsonProperty("lease_takeover_request_id")
private String leaseTakeoverRequestId;
@JsonProperty("auto_recovery_request_id")
private String autoRecoveryRequestId;
@JsonProperty("start_service_disabled")
private Boolean startServiceDisabled;
@JsonProperty("stop_service_disabled")
private Boolean stopServiceDisabled;
@JsonProperty("memory_id")
private String memoryId;
@JsonProperty("memory_key")
private String memoryKey;
@JsonProperty("governance_status")
private String governanceStatus;
@JsonProperty("merge_candidate_count")
private Long mergeCandidateCount;
@JsonProperty("duplicate_memory_ids")
private List<String> duplicateMemoryIds;
@JsonProperty("latest_memory_id")
private String latestMemoryId;
@JsonProperty("last_governance_action")
private String lastGovernanceAction;
@JsonProperty("last_reviewed_at")
private String lastReviewedAt;
@JsonProperty("memory_policy_id")
private String memoryPolicyId;
@JsonProperty("memory_policy_status")
private String memoryPolicyStatus;
@JsonProperty("merge_policy_id")
private String mergePolicyId;
@JsonProperty("merge_action_disabled")
private Boolean mergeActionDisabled;
@JsonProperty("remote_memory_policy_disabled")
private Boolean remoteMemoryPolicyDisabled;
@JsonProperty("skill_id")
private String skillId;
@JsonProperty("skill_version")
private String skillVersion;
@JsonProperty("install_status")
private String installStatus;
@JsonProperty("permission_scope")
private String permissionScope;
@JsonProperty("policy_source")
private String policySource;
@JsonProperty("policy_status")
private String policyStatus;
@JsonProperty("skill_install_request_id")
private String skillInstallRequestId;
@JsonProperty("skill_upgrade_request_id")
private String skillUpgradeRequestId;
@JsonProperty("permission_policy_id")
private String permissionPolicyId;
@JsonProperty("permission_edit_request_id")
private String permissionEditRequestId;
@JsonProperty("install_action_disabled")
private Boolean installActionDisabled;
@JsonProperty("upgrade_action_disabled")
private Boolean upgradeActionDisabled;
@JsonProperty("permission_edit_disabled")
private Boolean permissionEditDisabled;
@JsonProperty("tool_name")
private String toolName;
@JsonProperty("server_id")
private String serverId;
@JsonProperty("audit_archive_id")
private String auditArchiveId;
@JsonProperty("archive_status")
private String archiveStatus;
@JsonProperty("archive_location")
private String archiveLocation;
@JsonProperty("billing_estimate_id")
private String billingEstimateId;
@JsonProperty("billing_source")
private String billingSource;
private Boolean estimated;
@JsonProperty("diagnostic_id")
private String diagnosticId;
@JsonProperty("diagnostic_kind")
private String diagnosticKind;
@JsonProperty("issue_code")
private String issueCode;
@JsonProperty("repair_action")
private String repairAction;
@JsonProperty("repair_status")
private String repairStatus;
@JsonProperty("repair_reason")
private String repairReason;
@JsonProperty("safe_repair_disabled")
private Boolean safeRepairDisabled;
@JsonProperty("billing_actual_disabled")
private Boolean billingActualDisabled;
@JsonProperty("sandbox_archive_file_disabled")
private Boolean sandboxArchiveFileDisabled;
@JsonProperty("auto_repair_execution_disabled")
private Boolean autoRepairExecutionDisabled;
@JsonProperty("repair_approval_required")
private Boolean repairApprovalRequired;
@JsonProperty("recommended_action")
private String recommendedAction;
@JsonProperty("policy_kind")
private String policyKind;
@JsonProperty("policy_key")
private String policyKey;
@JsonProperty("policy_edit_request_id")
private String policyEditRequestId;
@JsonProperty("policy_edit_status")
private String policyEditStatus;
@JsonProperty("policy_edit_reason")
private String policyEditReason;
@JsonProperty("merge_request_id")
private String mergeRequestId;
@JsonProperty("memory_merge_request_id")
private String memoryMergeRequestId;
@JsonProperty("remote_memory_policy_request_id")
private String remoteMemoryPolicyRequestId;
@JsonProperty("merge_recommendation")
private String mergeRecommendation;
@JsonProperty("remote_policy_edit_disabled")
private Boolean remotePolicyEditDisabled;
@JsonProperty("auto_merge_disabled")
private Boolean autoMergeDisabled;
@JsonProperty("approval_policy_edit_disabled")
private Boolean approvalPolicyEditDisabled;
@JsonProperty("route_policy_edit_disabled")
private Boolean routePolicyEditDisabled;
@JsonProperty("route_recovery_disabled")
private Boolean routeRecoveryDisabled;
@JsonProperty("high_risk_execution_disabled")
private Boolean highRiskExecutionDisabled;
@JsonProperty("schedule_id")
private String scheduleId;
@JsonProperty("job_id")
private String jobId;
@JsonProperty("revision_id")
private String revisionId;
@JsonProperty("revision_fact_id")
private String revisionFactId;
@JsonProperty("revision_status")
private String revisionStatus;
@JsonProperty("revision_materialized")
private Boolean revisionMaterialized;
@JsonProperty("base_revision_id")
private String baseRevisionId;
@JsonProperty("changed_fields")
private List<String> changedFields;
@JsonProperty("occurred_at")
private String occurredAt;
@JsonProperty("synced_at")
private Date syncedAt;
@JsonProperty("client_key_masked")
private String clientKeyMasked;
@JsonProperty("device_id")
private String deviceId;
@JsonProperty("business_view")
private Map<String, Object> businessView;
private Map<String, Object> payload;
}

View File

@@ -0,0 +1,47 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Builder
public class DigitalEmployeeBillingEstimateDto {
@JsonProperty("total_tokens")
private Long totalTokens;
@JsonProperty("input_tokens")
private Long inputTokens;
@JsonProperty("output_tokens")
private Long outputTokens;
@JsonProperty("estimated_cost_usd")
private BigDecimal estimatedCostUsd;
@JsonProperty("request_count")
private Long requestCount;
private Boolean estimated;
@JsonProperty("by_model")
private Map<String, ModelEstimate> byModel;
@JsonProperty("updated_at")
private Date updatedAt;
@JsonProperty("source_records")
private List<Long> sourceRecords;
@Data
@Builder
public static class ModelEstimate {
@JsonProperty("total_tokens")
private Long totalTokens;
@JsonProperty("input_tokens")
private Long inputTokens;
@JsonProperty("output_tokens")
private Long outputTokens;
@JsonProperty("estimated_cost_usd")
private BigDecimal estimatedCostUsd;
@JsonProperty("request_count")
private Long requestCount;
}
}

View File

@@ -0,0 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeBusinessViewPageDto {
private Long total;
@JsonProperty("page_no")
private Long pageNo;
@JsonProperty("page_size")
private Long pageSize;
private List<DigitalEmployeeBusinessViewRowDto> records;
}

View File

@@ -0,0 +1,68 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
import java.util.Map;
@Data
@Builder
public class DigitalEmployeeBusinessViewRowDto {
@JsonProperty("sync_record_id")
private Long syncRecordId;
@JsonProperty("sync_record_url")
private String syncRecordUrl;
@JsonProperty("entity_type")
private String entityType;
@JsonProperty("entity_id")
private String entityId;
private String operation;
private String title;
private String status;
private String summary;
@JsonProperty("plan_id")
private String planId;
@JsonProperty("task_id")
private String taskId;
@JsonProperty("run_id")
private String runId;
private String kind;
@JsonProperty("occurred_at")
private String occurredAt;
@JsonProperty("started_at")
private String startedAt;
@JsonProperty("finished_at")
private String finishedAt;
@JsonProperty("duration_ms")
private Long durationMs;
@JsonProperty("sync_status")
private String syncStatus;
@JsonProperty("client_key_masked")
private String clientKeyMasked;
@JsonProperty("device_id")
private String deviceId;
@JsonProperty("synced_at")
private Date syncedAt;
private Date modified;
private Date created;
@JsonProperty("business_view")
private Map<String, Object> businessView;
private Map<String, Object> payload;
@JsonProperty("task_count")
private Integer taskCount;
@JsonProperty("run_count")
private Integer runCount;
@JsonProperty("latest_event_at")
private String latestEventAt;
@JsonProperty("last_event_message")
private String lastEventMessage;
@JsonProperty("advanced_query_supported")
private Boolean advancedQuerySupported;
@JsonProperty("aggregation_scope")
private String aggregationScope;
@JsonProperty("materialized_source")
private String materializedSource;
private Boolean materialized;
}

View File

@@ -0,0 +1,17 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeePlanBusinessViewDetailDto {
private DigitalEmployeeBusinessViewRowDto plan;
private List<DigitalEmployeeBusinessViewRowDto> tasks;
private List<DigitalEmployeeBusinessViewRowDto> runs;
private List<DigitalEmployeeBusinessViewRowDto> events;
private List<DigitalEmployeeBusinessViewRowDto> artifacts;
private List<DigitalEmployeeBusinessViewRowDto> approvals;
}

View File

@@ -0,0 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeePolicySnapshotPageDto {
private Long total;
@JsonProperty("page_no")
private Long pageNo;
@JsonProperty("page_size")
private Long pageSize;
private List<DigitalEmployeePolicySnapshotRowDto> records;
}

View File

@@ -0,0 +1,72 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Builder
public class DigitalEmployeePolicySnapshotRowDto {
@JsonProperty("policy_kind")
private String policyKind;
@JsonProperty("policy_key")
private String policyKey;
private String status;
private String summary;
@JsonProperty("client_count")
private Integer clientCount;
@JsonProperty("device_count")
private Integer deviceCount;
@JsonProperty("conflict_keys")
private List<String> conflictKeys;
@JsonProperty("latest_synced_at")
private Date latestSyncedAt;
@JsonProperty("recommended_resolution")
private String recommendedResolution;
@JsonProperty("route_decision_count")
private Integer routeDecisionCount;
@JsonProperty("blocked_count")
private Integer blockedCount;
@JsonProperty("approval_required_count")
private Integer approvalRequiredCount;
@JsonProperty("missing_context_count")
private Integer missingContextCount;
@JsonProperty("not_mapped_count")
private Integer notMappedCount;
@JsonProperty("intervention_conflict_status")
private String interventionConflictStatus;
@JsonProperty("approval_policy_id")
private String approvalPolicyId;
@JsonProperty("conflict_policy_id")
private String conflictPolicyId;
@JsonProperty("decision_guard_status")
private String decisionGuardStatus;
@JsonProperty("batch_accept_remote_disabled")
private Boolean batchAcceptRemoteDisabled;
@JsonProperty("auto_decision_disabled")
private Boolean autoDecisionDisabled;
@JsonProperty("policy_reason")
private String policyReason;
@JsonProperty("dispatch_policy_key")
private String dispatchPolicyKey;
@JsonProperty("max_per_sweep")
private Long maxPerSweep;
@JsonProperty("auto_dispatch_ready_steps")
private Boolean autoDispatchReadySteps;
@JsonProperty("catch_up_on_startup")
private Boolean catchUpOnStartup;
@JsonProperty("max_run_history")
private Long maxRunHistory;
@JsonProperty("sync_record_url")
private String syncRecordUrl;
@JsonProperty("client_key_masked")
private String clientKeyMasked;
@JsonProperty("device_id")
private String deviceId;
@JsonProperty("business_view")
private Map<String, Object> businessView;
}

View File

@@ -0,0 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class DigitalEmployeeSyncAckDto {
@JsonProperty("outbox_id")
private String outboxId;
@JsonProperty("entity_type")
private String entityType;
@JsonProperty("entity_id")
private String entityId;
@JsonProperty("remote_id")
private String remoteId;
}

View File

@@ -0,0 +1,24 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonAlias;
import lombok.Data;
import java.util.Map;
@Data
public class DigitalEmployeeSyncItemDto {
@JsonAlias("outbox_id")
private String outboxId;
@JsonAlias("entity_type")
private String entityType;
@JsonAlias("entity_id")
private String entityId;
private String operation;
@JsonAlias("contract_version")
private String contractVersion;
@JsonAlias("entity_summary")
private Map<String, Object> entitySummary;
@JsonAlias("business_view")
private Map<String, Object> businessView;
private Map<String, Object> payload;
}

View File

@@ -0,0 +1,35 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
@Data
@Builder
public class DigitalEmployeeSyncRecordDto {
private Long id;
@JsonProperty("client_key")
private String clientKey;
@JsonProperty("device_id")
private String deviceId;
@JsonProperty("outbox_id")
private String outboxId;
@JsonProperty("entity_type")
private String entityType;
@JsonProperty("entity_id")
private String entityId;
private String operation;
@JsonProperty("contract_version")
private String contractVersion;
@JsonProperty("entity_summary")
private String entitySummary;
@JsonProperty("business_view")
private String businessView;
private String payload;
@JsonProperty("synced_at")
private Date syncedAt;
private Date modified;
private Date created;
}

View File

@@ -0,0 +1,18 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeSyncRecordPageDto {
private Long total;
@JsonProperty("page_no")
private Long pageNo;
@JsonProperty("page_size")
private Long pageSize;
private List<DigitalEmployeeSyncRecordDto> records;
}

View File

@@ -0,0 +1,15 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import com.fasterxml.jackson.annotation.JsonAlias;
import lombok.Data;
import java.util.List;
@Data
public class DigitalEmployeeSyncRequestDto {
@JsonAlias("client_key")
private String clientKey;
@JsonAlias("device_id")
private String deviceId;
private List<DigitalEmployeeSyncItemDto> items;
}

View File

@@ -0,0 +1,12 @@
package com.xspaceagi.agent.core.adapter.dto.digital;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class DigitalEmployeeSyncResponseDto {
private List<DigitalEmployeeSyncAckDto> acked;
}

View File

@@ -1,20 +0,0 @@
package com.xspaceagi.agent.core.adapter.dto.recommend;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RecommendHomeResponse {
private Map<String, List<TargetRecommendResponse>> recHome;
private Map<String, List<TargetRecommendResponse>> recChatBoxNav;
}

Some files were not shown because too many files have changed in this diff Show More