diff --git a/test/run_skill_tests.py b/test/run_skill_tests.py index 57b99629..6b77872a 100644 --- a/test/run_skill_tests.py +++ b/test/run_skill_tests.py @@ -323,7 +323,7 @@ def get_reference_file(product: str) -> str: 'calendar': 'calendar.md', 'chat': 'chat.md', 'contact': 'contact.md', - 'devapp': 'devapp.md', + 'dev': 'skills/multi/dingtalk-dev/SKILL.md', 'ding': 'ding.md', 'doc': 'doc.md', 'drive': 'drive.md', diff --git a/test/skill_e2e/skill_e2e_test.go b/test/skill_e2e/skill_e2e_test.go index 5406d674..9300bbbb 100644 --- a/test/skill_e2e/skill_e2e_test.go +++ b/test/skill_e2e/skill_e2e_test.go @@ -172,8 +172,8 @@ func inAntiRange(root, file string, ln int) bool { } func shouldSkip(cmd string) bool { - if strings.HasPrefix(cmd, "dws devapp ") || cmd == "dws devapp" { - // devapp is a target MCP-discovered command tree. Until the MCP product + if strings.HasPrefix(cmd, "dws dev ") || cmd == "dws dev" { + // dev (product id: devapp) is a target MCP-discovered command tree. Until the MCP product // is published into the open-source registry, validate its Agent routing // through test/skill_tests.md rather than mock cobra dispatch. return true diff --git a/test/skill_static/skill_static_test.go b/test/skill_static/skill_static_test.go index 2d2dd035..9423a7b3 100644 --- a/test/skill_static/skill_static_test.go +++ b/test/skill_static/skill_static_test.go @@ -134,8 +134,8 @@ func readFile(p string) (string, error) { var anglePlaceholderRe = regexp.MustCompile(`<[^>]*>`) func shouldSkip(cmd string) bool { - if strings.HasPrefix(cmd, "dws devapp ") || cmd == "dws devapp" { - // devapp is a target MCP-discovered command tree. Until the MCP product + if strings.HasPrefix(cmd, "dws dev ") || cmd == "dws dev" { + // dev (product id: devapp) is a target MCP-discovered command tree. Until the MCP product // is published into the open-source registry, validate its Agent routing // through test/skill_tests.md rather than static cobra dispatch. return true diff --git a/test/skill_tests.md b/test/skill_tests.md index fe57fb9b..47e514ac 100644 --- a/test/skill_tests.md +++ b/test/skill_tests.md @@ -45,7 +45,7 @@ Agent 安装 dws skill 后,仅依据 skill 提供的参考文档,将自然 | `chat` | `references/products/chat.md` | 13 | 31 | | `contact` | `references/products/contact.md` | 7 | 14 | | `devdoc` | `references/products/simple.md` | 1 | 7 | -| `devapp` | `references/products/devapp.md` | 18 | 25 | +| `dev` | `skills/multi/dingtalk-dev/SKILL.md` | 19 | 25 | | `ding` | `references/products/ding.md` | 2 | 5 | | `report` | `references/products/report.md` | 6 | 26 | | `routing` | `references/intent-guide.md` | 1 | 3 | @@ -834,161 +834,161 @@ Agent 安装 dws skill 后,仅依据 skill 提供的参考文档,将自然 --- -### devapp(25 条) +### dev(25 条) -#### `dws devapp list` +#### `dws dev app list` -**devapp_devapp_list_001** +**dev_app_list_001** - Prompt: 搜索开放平台应用,应用名是 DemoApp -- Expected: `dws devapp list --name DemoApp --format json` +- Expected: `dws dev app list --name DemoApp --format json` - Flags: `--name` = `DemoApp` -**devapp_devapp_list_002** +**dev_app_list_002** - Prompt: 分页查询开放平台应用,第 2 页,每页 10 条,按修改时间倒序 -- Expected: `dws devapp list --page 2 --page-size 10 --sort gmt_modified --order desc --format json` +- Expected: `dws dev app list --page 2 --page-size 10 --sort gmt_modified --order desc --format json` - Flags: `--page` = `2`, `--page-size` = `10`, `--sort` = `gmt_modified`, `--order` = `desc` -**devapp_devapp_list_003** +**dev_app_list_003** - Prompt: 在开发者后台搜索企业内部应用 DemoApp -- Expected: `dws devapp list --name DemoApp --format json` +- Expected: `dws dev app list --name DemoApp --format json` - Flags: `--name` = `DemoApp` -#### `dws devapp get` +#### `dws dev app get` -**devapp_devapp_get_001** +**dev_app_get_001** - Prompt: 查看统一应用 UNIFIED_APP_ID 的应用详情 -- Expected: `dws devapp get --unified-app-id UNIFIED_APP_ID --format json` +- Expected: `dws dev app get --unified-app-id UNIFIED_APP_ID --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID` -**devapp_devapp_get_002** +**dev_app_get_002** - Prompt: agentId 为 123456 的开放平台应用是哪个 -- Expected: `dws devapp get --agent-id 123456 --format json` +- Expected: `dws dev app get --agent-id 123456 --format json` - Flags: `--agent-id` = `123456` -**devapp_devapp_get_003** +**dev_app_get_003** - Prompt: 查开放平台应用 DemoApp 的 appKey、clientId 和 agentId -- Expected: `dws devapp get --name DemoApp --format json` +- Expected: `dws dev app get --name DemoApp --format json` - Flags: `--name` = `DemoApp` -#### `dws devapp create` +#### `dws dev app create` -**devapp_devapp_create_001** +**dev_app_create_001** - Prompt: 创建一个企业内部应用,名称 DemoApp,描述是内部应用 -- Expected: `dws devapp create --name DemoApp --desc "内部应用" --type internal --dry-run --format json` +- Expected: `dws dev app create --name DemoApp --desc "内部应用" --type internal --dry-run --format json` - Flags: `--name` = `DemoApp`, `--desc` = `内部应用`, `--type` = `internal` -**devapp_devapp_create_002** +**dev_app_create_002** - Prompt: 已确认创建企业内部应用 DemoApp -- Expected: `dws devapp create --name DemoApp --type internal --yes --format json` +- Expected: `dws dev app create --name DemoApp --type internal --yes --format json` - Flags: `--name` = `DemoApp`, `--type` = `internal` -#### `dws devapp update` +#### `dws dev app update` -**devapp_devapp_update_001** +**dev_app_update_001** - Prompt: 把应用 UNIFIED_APP_ID 的描述改成 新描述 -- Expected: `dws devapp update --unified-app-id UNIFIED_APP_ID --desc "新描述" --dry-run --format json` +- Expected: `dws dev app update --unified-app-id UNIFIED_APP_ID --desc "新描述" --dry-run --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--desc` = `新描述` -#### `dws devapp delete` +#### `dws dev app delete` -**devapp_devapp_delete_001** +**dev_app_delete_001** - Prompt: 删除开放平台应用 UNIFIED_APP_ID,先给我预览 -- Expected: `dws devapp delete --unified-app-id UNIFIED_APP_ID --dry-run --format json` +- Expected: `dws dev app delete --unified-app-id UNIFIED_APP_ID --dry-run --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID` -#### `dws devapp credentials get` +#### `dws dev app credentials get` -**devapp_devapp_credentials_get_001** +**dev_app_credentials_get_001** - Prompt: 查询应用 UNIFIED_APP_ID 的开放平台凭证 -- Expected: `dws devapp credentials get --unified-app-id UNIFIED_APP_ID --format json` +- Expected: `dws dev app credentials get --unified-app-id UNIFIED_APP_ID --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID` -**devapp_devapp_credentials_get_002** +**dev_app_credentials_get_002** - Prompt: 查询 AgentId AGENT_ID 对应应用的开放平台凭证 -- Expected: `dws devapp credentials get --agent-id AGENT_ID --format json` +- Expected: `dws dev app credentials get --agent-id AGENT_ID --format json` - Flags: `--agent-id` = `AGENT_ID` -#### `dws devapp member list` +#### `dws dev app member list` -**devapp_devapp_member_list_001** +**dev_app_member_list_001** - Prompt: 查看开放平台应用 UNIFIED_APP_ID 的成员 -- Expected: `dws devapp member list --app-id UNIFIED_APP_ID --format json` +- Expected: `dws dev app member list --app-id UNIFIED_APP_ID --format json` - Flags: `--app-id` = `UNIFIED_APP_ID` -#### `dws devapp member add` +#### `dws dev app member add` -**devapp_devapp_member_add_001** +**dev_app_member_add_001** - Prompt: 给开放平台应用 UNIFIED_APP_ID 添加开发者成员 userId1,userId2,先预览 -- Expected: `dws devapp member add --app-id UNIFIED_APP_ID --users userId1,userId2 --member-type DEVELOPER --dry-run --format json` +- Expected: `dws dev app member add --app-id UNIFIED_APP_ID --users userId1,userId2 --member-type DEVELOPER --dry-run --format json` - Flags: `--app-id` = `UNIFIED_APP_ID`, `--users` = `userId1,userId2`, `--member-type` = `DEVELOPER` -#### `dws devapp member remove` +#### `dws dev app member remove` -**devapp_devapp_member_remove_001** +**dev_app_member_remove_001** - Prompt: 已确认,从开放平台应用 UNIFIED_APP_ID 移除开发者成员 userId1 -- Expected: `dws devapp member remove --app-id UNIFIED_APP_ID --users userId1 --member-type DEVELOPER --yes --format json` +- Expected: `dws dev app member remove --app-id UNIFIED_APP_ID --users userId1 --member-type DEVELOPER --yes --format json` - Flags: `--app-id` = `UNIFIED_APP_ID`, `--users` = `userId1`, `--member-type` = `DEVELOPER`, `--yes` -#### `dws devapp security config` +#### `dws dev app security config` -**devapp_devapp_security_config_001** +**dev_app_security_config_001** - Prompt: 给开放平台应用 UNIFIED_APP_ID 配置 IP 白名单 192.0.2.10,先预览 -- Expected: `dws devapp security config --app-id UNIFIED_APP_ID --ip-whitelist 192.0.2.10 --dry-run --format json` +- Expected: `dws dev app security config --app-id UNIFIED_APP_ID --ip-whitelist 192.0.2.10 --dry-run --format json` - Flags: `--app-id` = `UNIFIED_APP_ID`, `--ip-whitelist` = `192.0.2.10` -#### `dws devapp permission list` +#### `dws dev app permission list` -**devapp_devapp_permission_list_001** +**dev_app_permission_list_001** - Prompt: 查询应用 UNIFIED_APP_ID 已开通和未开通的全部 APP、SNS 权限 -- Expected: `dws devapp permission list --unified-app-id UNIFIED_APP_ID --status all --format json` +- Expected: `dws dev app permission list --unified-app-id UNIFIED_APP_ID --status all --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--status` = `all` -**devapp_devapp_permission_list_002** +**dev_app_permission_list_002** - Prompt: 搜索应用 UNIFIED_APP_ID 里机器人发送消息相关的未开通权限 -- Expected: `dws devapp permission list --unified-app-id UNIFIED_APP_ID --keyword "机器人发送消息" --status unauthed --format json` +- Expected: `dws dev app permission list --unified-app-id UNIFIED_APP_ID --keyword "机器人发送消息" --status unauthed --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--keyword` = `机器人发送消息`, `--status` = `unauthed` -**devapp_devapp_permission_list_003** +**dev_app_permission_list_003** - Prompt: 看一下权限 qyapi_robot_sendmsg 覆盖哪些 API -- Expected: `dws devapp permission list --unified-app-id UNIFIED_APP_ID --scope qyapi_robot_sendmsg --format json` +- Expected: `dws dev app permission list --unified-app-id UNIFIED_APP_ID --scope qyapi_robot_sendmsg --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--scope` = `qyapi_robot_sendmsg` -**devapp_devapp_permission_list_004** +**dev_app_permission_list_004** - Prompt: 给开放平台应用 UNIFIED_APP_ID 搜索手机号权限,应用权限和个人权限都要展示 -- Expected: `dws devapp permission list --unified-app-id UNIFIED_APP_ID --keyword "手机号" --status all --format json` +- Expected: `dws dev app permission list --unified-app-id UNIFIED_APP_ID --keyword "手机号" --status all --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--keyword` = `手机号`, `--status` = `all` -#### `dws devapp permission add` +#### `dws dev app permission add` -**devapp_devapp_permission_add_001** +**dev_app_permission_add_001** - Prompt: 给应用 UNIFIED_APP_ID 申请 qyapi_robot_sendmsg 权限,先预览 -- Expected: `dws devapp permission add --unified-app-id UNIFIED_APP_ID --permissions qyapi_robot_sendmsg --dry-run --format json` +- Expected: `dws dev app permission add --unified-app-id UNIFIED_APP_ID --permissions qyapi_robot_sendmsg --dry-run --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--permissions` = `qyapi_robot_sendmsg` -**devapp_devapp_permission_add_002** +**dev_app_permission_add_002** - Prompt: 已确认,给应用 UNIFIED_APP_ID 申请 Contact.User.mobile 权限 -- Expected: `dws devapp permission add --unified-app-id UNIFIED_APP_ID --permissions Contact.User.mobile --yes --format json` +- Expected: `dws dev app permission add --unified-app-id UNIFIED_APP_ID --permissions Contact.User.mobile --yes --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--permissions` = `Contact.User.mobile` -#### `dws devapp permission remove` +#### `dws dev app permission remove` -**devapp_devapp_permission_remove_001** +**dev_app_permission_remove_001** - Prompt: 从应用 UNIFIED_APP_ID 移除 qyapi_robot_sendmsg 权限,先预览 -- Expected: `dws devapp permission remove --unified-app-id UNIFIED_APP_ID --permission qyapi_robot_sendmsg --dry-run --format json` +- Expected: `dws dev app permission remove --unified-app-id UNIFIED_APP_ID --permission qyapi_robot_sendmsg --dry-run --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--permission` = `qyapi_robot_sendmsg` -#### `dws devapp event list` +#### `dws dev app event list` -**devapp_devapp_event_list_001** +**dev_app_event_list_001** - Prompt: 查询应用 UNIFIED_APP_ID 的事件订阅配置 -- Expected: `dws devapp event list --unified-app-id UNIFIED_APP_ID --format json` +- Expected: `dws dev app event list --unified-app-id UNIFIED_APP_ID --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID` -#### `dws devapp version publish` +#### `dws dev app version publish` -**devapp_devapp_version_publish_001** +**dev_app_version_publish_001** - Prompt: 已确认,发布应用 UNIFIED_APP_ID 的版本 VERSION_ID,审批人是 USERID -- Expected: `dws devapp version publish --unified-app-id UNIFIED_APP_ID --version-id VERSION_ID --approver USERID --yes --format json` +- Expected: `dws dev app version publish --unified-app-id UNIFIED_APP_ID --version-id VERSION_ID --approver USERID --yes --format json` - Flags: `--unified-app-id` = `UNIFIED_APP_ID`, `--version-id` = `VERSION_ID`, `--approver` = `USERID` ---