Files
dingtalk-workspace-cli/docs/shortcut-real-read-results.json
Dennis 8687d68567 feat: gate unverified shortcuts for release
Hide shortcuts that did not pass real testing from public help/list discovery while keeping commands available for internal retest.

Record real shortcut inputs/outputs, backend issue summaries, next-release hidden list, and refresh skill guidance to mirror the lark-cli shortcut integration pattern.
2026-07-15 16:45:51 +08:00

4974 lines
448 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"generated_at": "2026-07-15T16:13:24.234893",
"summary": {
"total": 204,
"ok": 162,
"error": 41,
"timeout": 0,
"held": 1
},
"failure_categories": {
"input-or-business-validation": 16,
"backend-or-mcp-error": 9,
"missing-real-resource": 7,
"auth-or-permission": 6,
"missing-real-minutes-fixture": 3,
"held": 1
},
"results": [
{
"service": "aitable",
"command": "+base-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +base-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --yes --format json",
"args": [
"aitable",
"+base-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"baseName\": \"Real共创版设备去向登记\",\n \"dashboards\": [\n {\n \"chartCount\": 8,\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"dashboardName\": \"仪表盘\",\n \"meta\": {}\n }\n ],\n \"documents\": [],\n \"tables\": [\n {\n \"tableId\": \"hERWDMS\",\n \"tableName\": \"Mac Mini\"\n },\n {\n \"tableId\": \"k8d898q\",\n \"tableName\": \"手机\"\n },\n {\n \"tableId\": \"zyLRwwa\",\n \"tableName\": \"SIM卡\"\n },\n {\n \"tableId\": \"L53jNZz\",\n \"tableName\": \"机箱\"\n },\n {\n \"tableId\": \"zTiHNDL\",\n \"tableName\": \"磁吸片\"\n },\n {\n \"tableId\": \"anMdihs\",\n \"tableName\": \"手机线\"\n }\n ]\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got base 'Real共创版设备去向登记' with 6 table(s). URL rules: AI 表格访问地址: https://docs.dingtalk.com/i/nodes/{baseId}; AI 表格数据表访问地址: https://docs.dingtalk.com/i/nodes/{baseId}?iframeQuery=sheetId%3D{tableId}; AI 表格仪表盘访问地址: https://docs.dingtalk.com/i/nodes/{baseId}?iframeQuery=applicationId%3D{dashboardId}; AI 表格说明文档地址: https://pre-alidocs.dingtalk.com/i/nodes/{baseId}?iframeQuery=applicationId%3D{documentId}. User-facing guidance: 面向用户时要以人为本、友好直观,优先展示 **实体名称**、可点击链接和必要上下文,尽量隐藏 `baseId`、`tableId`、`viewId`、`dashboardId`、`documentId` 等技术细节;除非用户明确索要或排障必须,否则不要直接呈现这些 ID。\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1773
},
{
"service": "aitable",
"command": "+base-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +base-list --limit 10 --cursor 0 --yes --format json",
"args": [
"aitable",
"+base-list",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"bases\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1289
},
{
"service": "aitable",
"command": "+base-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +base-search --query '测试' --cursor 0 --yes --format json",
"args": [
"aitable",
"+base-search",
"--query",
"测试",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"bases\": [\n {\n \"baseId\": \"yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-27 21:27:03\"\n },\n {\n \"baseId\": \"3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm\",\n \"baseName\": \"文件扫描测试 -20260414\"\n },\n {\n \"baseId\": \"QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N\",\n \"baseName\": \"文件扫描测试(25)\"\n },\n {\n \"baseId\": \"Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq\",\n \"baseName\": \"文件扫描测试(5)\"\n },\n {\n \"baseId\": \"OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4\",\n \"baseName\": \"文件扫描测试(24)\"\n },\n {\n \"baseId\": \"OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4\",\n \"baseName\": \"文件扫描测试(22)\"\n },\n {\n \"baseId\": \"l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4\",\n \"baseName\": \"文件扫描测试(26)(2)\"\n },\n {\n \"baseId\": \"MyQA2dXW7oOA63Yac5lMpzxkWzlwrZgb\",\n \"baseName\": \"文件扫描测试\"\n },\n {\n \"baseId\": \"9E05BDRVQePjzLkZtyX1L6vmV63zgkYA\",\n \"baseName\": \"工作目录文件扫描测试\"\n },\n {\n \"baseId\": \"y20BglGWOGQgpOj6u0GaqL3EWA7depqY\",\n \"baseName\": \"case-0055-数据导入测试\"\n },\n {\n \"baseId\": \"14dA3GK8gkP4oNl0cKqRz7jy89ekBD76\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-22 19:41:26\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSGLpk7EdJMwvDqPk\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-22 18:41:20\"\n },\n {\n \"baseId\": \"7dx2rn0Jbakrq9O5t2GbL30XVMGjLRb3\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-22 16:33:50\"\n },\n {\n \"baseId\": \"OG9lyrgJPL7M2ONQSzPgGxwvJzN67Mw4\",\n \"baseName\": \"case-0052-临时测试\"\n },\n {\n \"baseId\": \"wva2dxOW4kO6dpRac0jppNE58bkz3BRL\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-21 22:11:30\"\n },\n {\n \"baseId\": \"0eMKjyp81MrAdNmPu4NvYXAE8xAZB1Gv\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-20 21:24:44\"\n },\n {\n \"baseId\": \"dxXB52LJqwZrolvyFMkR2MDPWqjMp697\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-20 16:53:48\"\n },\n {\n \"baseId\": \"bva6QBXJwZenolNyS2Gwg2NxVn4qY5Pr\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-20 15:53:56\"\n },\n {\n \"baseId\": \"bva6QBXJwZenolNyS2G3bNnOVn4qY5Pr\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-20 09:09:21\"\n },\n {\n \"baseId\": \"pYLaezmVNGmDXOMxuGjwevPqJrMqPxX6\",\n \"baseName\": \"🧪测试 工作区目录扫描 - 2026-04-20 08:09:11\"\n }\n ],\n \"count\": 20\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1628
},
{
"service": "aitable",
"command": "+chart-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +chart-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --dashboard-id KY9tlWg5NEHgfs8WT6IO2 --chart-id widget-dlxFo0tNSImp4ITpDn5fQ --yes --format json",
"args": [
"aitable",
"+chart-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--dashboard-id",
"KY9tlWg5NEHgfs8WT6IO2",
"--chart-id",
"widget-dlxFo0tNSImp4ITpDn5fQ",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-dlxFo0tNSImp4ITpDn5fQ\",\n \"chartName\": \"各业务线未部署数\",\n \"chartType\": \"BAR\",\n \"config\": {\n \"axisLabelShow\": false,\n \"categoryAxisMaxRatio\": \"0.3\",\n \"chartType\": \"BAR\",\n \"colors\": \"COLOR_PALETTE_1\",\n \"dimension\": [\n {\n \"value\": \"rjwzzIu\"\n }\n ],\n \"fillType\": \"solid\",\n \"filter\": [],\n \"gridShow\": false,\n \"group\": [\n {\n \"value\": \"none\"\n }\n ],\n \"label\": true,\n \"labelHideOverlap\": true,\n \"legend\": \"top\",\n \"measure\": [\n {\n \"externalValue\": [\n {\n \"type\": \"formula\",\n \"value\": \"count\"\n }\n ],\n \"value\": \"kFwb8br\"\n }\n ],\n \"measureType\": \"field\",\n \"nullValue\": \"ignore\",\n \"sheet\": \"hERWDMS\",\n \"sortRule\": \"asc\",\n \"view\": \"\",\n \"xAbbr\": {\n \"abbr\": \"\",\n \"decimal\": \"\",\n \"numberType\": \"default\"\n },\n \"xAxisLabel\": true,\n \"xAxisLabelRotate\": \"auto\",\n \"xAxisLine\": false,\n \"xAxisShow\": true,\n \"xSortBy\": \"x\",\n \"xSortCustom\": [],\n \"yAbbr\": {\n \"abbr\": \"\",\n \"decimal\": \"\",\n \"numberType\": \"default\"\n },\n \"yAxisLabel\": true,\n \"yAxisLine\": false,\n \"yAxisRange\": {\n \"range\": [],\n \"type\": \"absolute\"\n },\n \"yAxisShow\": true,\n \"yRightAbbr\": {\n \"abbr\": \"\",\n \"decimal\": \"\",\n \"numberType\": \"default\"\n },\n \"ySortCustom\": []\n },\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"layout\": {\n \"h\": 5,\n \"i\": \"widget-dlxFo0tNSImp4ITpDn5fQ\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 4\n }\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got chart widget-dlxFo0tNSImp4ITpDn5fQ\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1038
},
{
"service": "aitable",
"command": "+chart-widgets-example",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +chart-widgets-example --yes --format json",
"args": [
"aitable",
"+chart-widgets-example",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": \"// 注意\\n// 1. 下述 JSON 示例中的注释(// 开头的注释)仅用于说明,实际使用时请删除,否则会导致解析错误\\n// 2. 所有图表类型的 widget config 示例,key 是图表类型,value 是对应的完整 config\\n// 3. 创建图表时,必需使用示例中的图表类型和配置格式\\n\\n\\n{\\n// 聚合列表视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"AGGREGATE_LIST_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"AGGREGATE_LIST_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"聚合列表视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 列表自定义配置,用于设置聚合列表的自定义样式和行为\\n \\\"listCustom\\\": {},\\n // 列表配置,用于设置聚合列表的显示方式和布局\\n \\\"listConfig\\\": {},\\n // 字段聚合映射,用于设置字段的聚合方式(如 sum、count、avg 等)\\n \\\"fieldAggregateMap\\\": {},\\n // 工具栏配置,用于控制聚合列表视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示分组按钮\\n \\\"enableGroup\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n },\\n },\\n// AI 分析卡片配置格式,必须按照此格式配置,否则会导致解析错误\\n // 注意:AI 分析卡片不依赖数据表,无需配置 sheet / view / filter\\n \\\"AI_ANALYZE\\\": {\\n // 必填,图表类型,固定值 \\\"AI_ANALYZE\\\"\\n \\\"chartType\\\": \\\"AI_ANALYZE\\\",\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"AI 分析卡片\\\",\\n // 可选,AI 提示词,用自然语言描述希望 AI 分析的内容和问题,\\n // 例如:\\\"分析本月各产品线的销售额趋势,找出增长最快的类别并给出建议\\\"\\n \\\"prompt\\\": \\\"\\\",\\n // 可选,需要 AI 参考分析的图表 ID 列表,数组中每个元素必须是当前仪表盘中已存在的图表 ID;\\n // 不填或传空数组时 AI 将基于提示词独立分析,不关联具体图表数据\\n \\\"analyzeChartIds\\\": [],\\n // 可选,指定 AI 模型 ID;不填时使用系统默认模型\\n \\\"modelId\\\": \\\"\\\",\\n // 只读,AI 生成的 Markdown 分析内容,由系统写入,创建时无需填写\\n \\\"content\\\": \\\"\\\",\\n // 只读,AI 分析结果的最后更新时间戳(毫秒),由系统写入,创建时无需填写\\n \\\"lastUpdatedAt\\\": null\\n },\\n// 面积图配置格式\\n \\\"AREA\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"AREA\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"面积图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"smooth\\\": false,\\n \\\"symbolType\\\": \\\"always\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": false,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"filter\\\": []\\n }\\n// 条形图配置格式\\n \\\"BAR\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"BAR\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"条形图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"record-count\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"nullValue\\\": \\\"ignore\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"gridShow\\\": false,\\n \\\"label\\\": true,\\n \\\"labelHideOverlap\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"xAxisLine\\\": false,\\n \\\"xAxisLabel\\\": true,\\n \\\"categoryAxisMaxRatio\\\": \\\"0.3\\\",\\n \\\"yAxisShow\\\": true,\\n \\\"yAxisLine\\\": false,\\n \\\"yAxisLabel\\\": true,\\n \\\"fillType\\\": \\\"solid\\\",\\n \\\"filter\\\": []\\n }\\n// 按钮配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"BUTTON\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"BUTTON\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"按钮\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 可选,按钮样式类型,合法值有:type1 到 type10,默认为 type1\\n \\\"buttonStyleType\\\": \\\"type1\\\",\\n // 可选,边框宽度,默认为 1\\n \\\"borderWidth\\\": 1,\\n // 可选,按钮大小,合法值有:default(默认)/ small(小)/ large(大),默认为 default\\n \\\"buttonSize\\\": \\\"default\\\",\\n // 可选,按钮图标,合法值有:link / download / refresh 等\\n \\\"buttonIcon\\\": \\\"link\\\",\\n // 可选,按钮图标背景类型,合法值有:light(浅色)/ dark(深色),默认为 light\\n \\\"buttonIconBackgroundType\\\": \\\"light\\\",\\n // 可选,按钮字体配置\\n \\\"buttonFontSetting\\\": {\\n // 字体大小,默认为 14\\n \\\"size\\\": 14,\\n // 字体颜色\\n \\\"color\\\": \\\"\\\",\\n // 字间距,默认为 0\\n \\\"letterSpacing\\\": 0,\\n // 是否加粗,默认为 false\\n \\\"bold\\\": false,\\n // 是否斜体,默认为 false\\n \\\"italic\\\": false,\\n // 是否下划线,默认为 false\\n \\\"underline\\\": false\\n }\\n },\\n// 日历视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"CALENDAR_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"CALENDAR_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"日历视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 视图分组配置,用于设置视图的默认分组规则\\n \\\"viewGroup\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 日历自定义配置,这是日历视图的核心配置\\n \\\"calendarCustom\\\": {\\n // 必填,显示字段 ID(必须是该表中真实存在的字段 ID)\\n // 用于在日历中显示事件标题或描述\\n \\\"displayFieldId\\\": \\\"fld_text_01\\\",\\n // 必填,开始时间字段 ID(必须是该表中真实存在的日期字段 ID)\\n // 用于设置事件的开始时间\\n \\\"startField\\\": \\\"fld_date_01\\\",\\n // 必填,结束时间字段 ID(必须是该表中真实存在的日期字段 ID)\\n // 用于设置事件的结束时间\\n \\\"endField\\\": \\\"fld_date_02\\\",\\n // 标记配置,用于在日历中添加特殊标记或样式\\n \\\"markers\\\": [],\\n // 时间轴刻度,合法值有:day(日)/ week(周)/ month(月)\\n // 用于设置日历的显示粒度\\n \\\"timelineScale\\\": \\\"month\\\",\\n // 列宽度映射,key 为 fieldId,value 为列宽度(像素)\\n \\\"widthMap\\\": {},\\n // 单元格高度,单位为像素,默认为 32\\n \\\"cellHeight\\\": 32\\n },\\n // 工具栏配置,用于控制日历视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示分组按钮\\n \\\"enableGroup\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n // 是否显示编辑记录按钮\\n \\\"enableEditRecord\\\": false\\n },\\n },\\n// 卡片列表视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"CARD_LIST_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"CARD_LIST_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"卡片列表视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 列表自定义配置,用于设置卡片列表的自定义样式和行为\\n \\\"listCustom\\\": {},\\n // 列表配置,用于设置卡片列表的显示方式和布局\\n \\\"listConfig\\\": {},\\n // 工具栏配置,用于控制卡片列表视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n },\\n },\\n// 折叠列表视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"COLLAPSIBLE_LIST_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"COLLAPSIBLE_LIST_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"折叠列表视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 列表自定义配置,用于设置折叠列表的自定义样式和行为\\n \\\"listCustom\\\": {},\\n // 列表配置,用于设置折叠列表的显示方式和布局\\n \\\"listConfig\\\": {},\\n // 工具栏配置,用于控制折叠列表视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示分组按钮\\n \\\"enableGroup\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n },\\n },\\n// 组合布局配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"COMPOSITE_LAYOUT\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"COMPOSITE_LAYOUT\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"组合布局\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\"\\n // 组合布局容器,无特殊配置字段,用于承载其他图表组件\\n },\\n// 组合图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"COMPOSITION\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"COMPOSITION\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"组合图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ],\\n \\\"composition\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"HISTOGRAM\\\",\\n \\\"yAxisPosition\\\": \\\"left\\\"\\n }\\n },\\n {\\n \\\"value\\\": \\\"fld_number_02\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"average\\\"\\n }\\n ],\\n \\\"composition\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"LINE\\\",\\n \\\"yAxisPosition\\\": \\\"right\\\"\\n }\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"gridShow\\\": false,\\n \\\"label\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"filter\\\": []\\n },\\n// ═══════════════════════════════════════════════════════════════════\\n // 图表类型:倒计时(COUNTDOWN)\\n // 别名/同义词:倒计时、正计时、计时器、倒计时卡片\\n // 用途:用于展示距离某个目标日期的剩余时间或已过时间,\\n // 支持倒计时和正计时两种模式。适合展示活动截止时间、\\n // 项目里程碑、重要日期提醒等场景。\\n // ═══════════════════════════════════════════════════════════════════\\n // ⚠️ 重要注意事项:\\n // 1. fixedDatetime 必须是毫秒时间戳(如 1746028800000),不是日期字符串(如 \\\"2026-05-01\\\")!\\n // 2. unit 是一个对象(Object),不是字符串!不要写成 \\\"天\\\" 或 \\\"day\\\"!\\n // 3. 背景色字段名是 \\\"background\\\",不是 \\\"backgroundColor\\\"\\n // 4. 时间数字颜色字段名是 \\\"timeColor\\\",不是 \\\"numberColor\\\"\\n // 5. 描述文字颜色字段名是 \\\"descColor\\\",不是 \\\"titleColor\\\"\\n // 6. 不存在 \\\"countdownType\\\"、\\\"endDate\\\"、\\\"numberColor\\\"、\\\"titleColor\\\" 等字段,使用这些字段会导致图表渲染异常\\n \\\"COUNTDOWN\\\": {\\n // 必填,图表类型,固定值 \\\"COUNTDOWN\\\"\\n \\\"chartType\\\": \\\"COUNTDOWN\\\",\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"倒计时\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": null,\\n // 可选,描述文本,显示在倒计时数字上方\\n \\\"desc\\\": \\\"倒计时\\\",\\n // 必填,数据来源类型,合法值:fixed(固定日期时间)/ field(从数据表日期字段取值)\\n \\\"sourceType\\\": \\\"fixed\\\",\\n // sourceType = \\\"fixed\\\" 时必填,目标日期的毫秒时间戳\\n // ⚠️ 必须是毫秒时间戳数字(如 1746028800000),不是日期字符串(如 \\\"2026-05-01\\\")!\\n // 示例:2026-05-01 00:00:00 → 1746028800000\\n \\\"fixedDatetime\\\": 1746028800000,\\n // sourceType = \\\"field\\\" 时填写,日期字段的 fieldId\\n \\\"fieldId\\\": null,\\n // sourceType = \\\"field\\\" 时填写,日期选择方式,合法值:earliest(最早日期)/ latest(最晚日期)\\n \\\"fieldChoice\\\": \\\"earliest\\\",\\n // 必填,计时模式,合法值:countdown(倒计时,目标时间在未来)/ countup(正计时,目标时间在过去)\\n \\\"timingMode\\\": \\\"countdown\\\",\\n // 必填,显示的时间单位开关(是一个对象,不是字符串!)\\n // ⚠️ 不要写成 \\\"天\\\" 或 \\\"day\\\",必须是如下对象格式:\\n \\\"unit\\\": {\\n // 是否显示月,默认 false\\n \\\"month\\\": false,\\n // 是否显示周,默认 false\\n \\\"week\\\": false,\\n // 是否显示天,默认 true\\n \\\"day\\\": true,\\n // 是否显示小时,默认 true\\n \\\"hour\\\": true,\\n // 是否显示分钟,默认 true\\n \\\"minute\\\": true,\\n // 是否显示秒,默认 true\\n \\\"second\\\": true\\n },\\n\\n // ── 样式配置 ──────────────────────────────────────────────────────────────\\n // 可选,卡片背景颜色(⚠️ 字段名是 \\\"background\\\",不是 \\\"backgroundColor\\\")\\n \\\"background\\\": \\\"\\\",\\n // 可选,描述文字颜色(⚠️ 字段名是 \\\"descColor\\\",不是 \\\"titleColor\\\")\\n \\\"descColor\\\": \\\"\\\",\\n // 可选,时间块背景颜色\\n \\\"timeBlockColor\\\": \\\"\\\",\\n // 可选,倒计时数字颜色(⚠️ 字段名是 \\\"timeColor\\\",不是 \\\"numberColor\\\")\\n \\\"timeColor\\\": \\\"\\\",\\n // 可选,计时完成是否显示动效,默认 false\\n \\\"showFinishEffect\\\": false\\n },\\n// 详情列表视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"DETAIL_LIST_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"DETAIL_LIST_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"详情列表视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 列表自定义配置,用于设置详情列表的自定义样式和行为\\n \\\"listCustom\\\": {},\\n // 列表配置,用于设置详情列表的显示方式和布局\\n \\\"listConfig\\\": {},\\n // 工具栏配置,用于控制详情列表视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n },\\n },\\n// 嵌入网页配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"EMBED_WEBPAGE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"EMBED_WEBPAGE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"嵌入网页\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 必填,嵌入的网页 URL(必须是有效的 URL 地址)\\n \\\"url\\\": \\\"https://example.com\\\"\\n },\\n// 漏斗图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"FUNNEL\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"FUNNEL\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"漏斗图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"record-count\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\"\\n }\\n ],\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"sumValue\\\": true,\\n \\\"funnelType\\\": \\\"normal\\\",\\n \\\"filter\\\": []\\n },\\n// 画册视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"GALLERY_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"GALLERY_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"画册视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 画册自定义配置,用于设置画册的显示样式\\n \\\"galleryCustom\\\": {\\n // 卡片设置,用于配置画册中卡片的显示方式\\n \\\"cardSetting\\\": {\\n // 封面模式,合法值有:none(无封面)/ cover(封面)等\\n \\\"coverMode\\\": \\\"none\\\"\\n }\\n },\\n // 工具栏配置,用于控制画册视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n // 是否显示编辑记录按钮\\n \\\"enableEditRecord\\\": false\\n },\\n },\\n// 甘特视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"GANTT_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"GANTT_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"甘特视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 视图分组配置,用于设置视图的默认分组规则\\n \\\"viewGroup\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 是否折叠网格,默认为 false\\n \\\"collapsedGrid\\\": false,\\n // 甘特自定义配置,这是甘特视图的核心配置\\n \\\"ganttCustom\\\": {\\n // 必填,显示字段 ID(必须是该表中真实存在的字段 ID)\\n // 用于在甘特图中显示任务名称或描述\\n \\\"displayFieldId\\\": \\\"fld_text_01\\\",\\n // 必填,开始时间字段 ID(必须是该表中真实存在的日期字段 ID)\\n // 用于设置任务的开始时间\\n \\\"startField\\\": \\\"fld_date_01\\\",\\n // 必填,结束时间字段 ID(必须是该表中真实存在的日期字段 ID)\\n // 用于设置任务的结束时间\\n \\\"endField\\\": \\\"fld_date_02\\\",\\n // 标记配置,用于在甘特图中添加里程碑或重要时间点\\n \\\"markers\\\": [],\\n // 时间轴刻度,合法值有:day(日)/ week(周)/ month(月)/ quarter(季)/ year(年)\\n // 用于设置甘特图的时间轴显示粒度\\n \\\"timelineScale\\\": \\\"month\\\",\\n // 列宽度映射,key 为 fieldId,value 为列宽度(像素)\\n \\\"widthMap\\\": {},\\n // 单元格高度,单位为像素,默认为 32\\n \\\"cellHeight\\\": 32\\n },\\n // 工具栏配置,用于控制甘特视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示分组按钮\\n \\\"enableGroup\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n // 是否显示编辑记录按钮\\n \\\"enableEditRecord\\\": false\\n },\\n },\\n// 表格视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"GRID_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"GRID_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"表格视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 视图分组配置,用于设置视图的默认分组规则\\n \\\"viewGroup\\\": [],\\n // 单元格高度,单位为像素,默认为 32\\n \\\"cellHeight\\\": 32,\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列宽度映射,key 为 fieldId,value 为列宽度(像素)\\n \\\"widthMap\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 冻结列数,默认为 1,表示冻结左侧的列数\\n \\\"frozenColCount\\\": 1,\\n // 工具栏配置,用于控制表格视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示分组按钮\\n \\\"enableGroup\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 创建行按钮的文本内容\\n \\\"createRowText\\\": \\\"\\\",\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n // 是否显示编辑记录按钮\\n \\\"enableEditRecord\\\": false\\n },\\n },\\n// ═══════════════════════════════════════════════════════════════════\\n // 图表类型:柱状图(HISTOGRAM)\\n // 别名/同义词:竖向柱图、垂直柱图、分组柱图\\n // 用途:以垂直柱子展示多个分类维度的数值对比,适合比较不同类别之间的\\n // 数量差异,如各月销售额对比、各部门人数对比、各产品销量排名等。\\n // 核心特征:有 X 轴(分类维度)和 Y 轴(数值),每个类别对应一根柱子。\\n // 与\\\"统计数字(SUMMARY)\\\"的关键区别:\\n // - 柱状图(HISTOGRAM):展示多个分类的对比,有坐标轴,是\\\"多值图表\\\"\\n // - 统计数字(SUMMARY):只展示一个聚合数字,无坐标轴,是\\\"单值卡片\\\"\\n // 重要:当用户说\\\"柱状图\\\"、\\\"柱图\\\"、\\\"分组柱图\\\"时,\\n // 必须使用 chartType = \\\"HISTOGRAM\\\",不要使用 SUMMARY 或其他图表类型。\\n // ═══════════════════════════════════════════════════════════════════\\n \\\"HISTOGRAM\\\": {\\n // 必填,图表类型,固定值 \\\"HISTOGRAM\\\"(柱状图)\\n \\\"chartType\\\": \\\"HISTOGRAM\\\",\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"柱状图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"record-count\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_02\\\"\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"xSortCustom\\\": [],\\n \\\"ySortCustom\\\": [],\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"nullValue\\\": \\\"ignore\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"gridShow\\\": false,\\n \\\"axisLabelShow\\\": false,\\n \\\"label\\\": true,\\n \\\"labelHideOverlap\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"xAxisLine\\\": false,\\n \\\"xAxisLabel\\\": true,\\n \\\"xAxisLabelRotate\\\": \\\"auto\\\",\\n \\\"categoryAxisMaxRatio\\\": \\\"0.2\\\",\\n \\\"yAxisShow\\\": true,\\n \\\"yAxisLine\\\": false,\\n \\\"yAxisLabel\\\": true,\\n \\\"fillType\\\": \\\"solid\\\",\\n \\\"yAxisRange\\\": {\\n \\\"type\\\": \\\"absolute\\\",\\n \\\"range\\\": []\\n },\\n \\\"xAbbr\\\": {\\n \\\"numberType\\\": \\\"default\\\",\\n \\\"abbr\\\": \\\"\\\",\\n \\\"decimal\\\": \\\"\\\"\\n },\\n \\\"yAbbr\\\": {\\n \\\"numberType\\\": \\\"default\\\",\\n \\\"abbr\\\": \\\"\\\",\\n \\\"decimal\\\": \\\"\\\"\\n },\\n \\\"yRightAbbr\\\": {\\n \\\"numberType\\\": \\\"default\\\",\\n \\\"abbr\\\": \\\"\\\",\\n \\\"decimal\\\": \\\"\\\"\\n },\\n \\\"filter\\\": []\\n }\\n// ═══════════════════════════════════════════════════════════════════\\n // 图表类型:图片(IMAGE)\\n // 别名/同义词:图片卡、图片展示、图片轮播、Banner 图\\n // 用途:在仪表盘中展示一张或多张静态图片,支持多图轮播(滑动/淡入淡出),\\n // 可为每张图片配置标题、描述和点击跳转链接。适合展示品牌 Banner、\\n // 产品图、说明图、装饰图等不依赖数据表的纯图片内容。\\n // 重要:当用户说\\\"图片\\\"、\\\"图片卡\\\"、\\\"图片展示\\\"、\\\"Banner\\\"、\\\"轮播图\\\"时,\\n // 必须使用 chartType = \\\"IMAGE\\\",不要使用其他图表类型。\\n // 此图表类型不依赖数据表,无需配置 sheet / view / filter。\\n // ═══════════════════════════════════════════════════════════════════\\n \\\"IMAGE\\\": {\\n // 必填,图表类型,固定值 \\\"IMAGE\\\"(图片)\\n \\\"chartType\\\": \\\"IMAGE\\\",\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"图片\\\",\\n // 必填,图片列表,至少包含一张图片;多张图片时支持轮播\\n \\\"img_images\\\": [\\n {\\n // 必填,图片的访问 URL\\n \\\"url\\\": \\\"https://example.com/image.png\\\",\\n // 可选,图片标题,显示在图片上方(需 img_showImgText=true)\\n \\\"title\\\": \\\"\\\",\\n // 可选,图片描述,显示在标题下方(需 img_showImgText=true)\\n \\\"desc\\\": \\\"\\\",\\n // 可选,点击图片后跳转的链接 URL\\n \\\"toUrl\\\": \\\"\\\",\\n // 必填,图片填充模式,合法值:cover(裁剪铺满)/ contain(等比缩放留白)/ fill(拉伸铺满)\\n \\\"fillMode\\\": \\\"cover\\\"\\n }\\n ],\\n // 可选,是否在图片上显示标题和描述文字,默认 true;\\n // 设为 false 时 img_titleStyle / img_descStyle / img_textAlign 均不生效\\n \\\"img_showImgText\\\": true,\\n // 可选,图片文字的对齐位置,合法值:\\n // leftTop / top / rightTop / left / center / right / leftBottom / bottom / rightBottom\\n \\\"img_textAlign\\\": \\\"center\\\",\\n // 可选,图片标题的字体样式(仅 img_showImgText=true 时生效)\\n \\\"img_titleStyle\\\": {\\n // 字体大小(px),合法范围 16~56,步长 4\\n \\\"size\\\": 16,\\n // 字体颜色,十六进制色值,如 \\\"#FFFFFF\\\"\\n \\\"color\\\": \\\"\\\",\\n // 是否加粗\\n \\\"bold\\\": true,\\n // 是否斜体\\n \\\"italic\\\": false,\\n // 是否下划线\\n \\\"underline\\\": false\\n },\\n // 可选,图片描述的字体样式(仅 img_showImgText=true 时生效)\\n \\\"img_descStyle\\\": {\\n // 字体大小(px),合法范围 16~56,步长 4\\n \\\"size\\\": 14,\\n // 字体颜色,十六进制色值\\n \\\"color\\\": \\\"\\\",\\n // 是否加粗\\n \\\"bold\\\": false,\\n // 是否斜体\\n \\\"italic\\\": false,\\n // 是否下划线\\n \\\"underline\\\": false\\n },\\n // 可选,多图时是否自动轮播,默认 false;单张图片时此配置无效\\n \\\"img_autoPlay\\\": false,\\n // 可选,多图轮播切换动效,合法值:slide(滑动)/ fade(淡入淡出),默认 slide;单张图片时无效\\n \\\"img_imgTransitionType\\\": \\\"slide\\\",\\n // 可选,多图自动轮播间隔(秒),合法范围 0.1~1000,默认 1;仅 img_autoPlay=true 时生效\\n \\\"img_imgTransitionInterval\\\": 1\\n },\\n// 看板视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"KANBAN_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"KANBAN_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"看板视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 看板自定义配置,这是看板视图的核心配置\\n \\\"kanbanCustom\\\": {\\n // 分组基础配置,用于设置看板的分组字段\\n \\\"groupBase\\\": {\\n // 必填,分组字段 ID(必须是该表中真实存在的字段 ID)\\n // 看板将按照此字段的值进行分组显示\\n \\\"baseFieldId\\\": \\\"fld_select_01\\\"\\n }\\n },\\n // 工具栏配置,用于控制看板视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n // 是否显示编辑记录按钮\\n \\\"enableEditRecord\\\": false\\n },\\n },\\n// 排行榜配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"LEADERBOARD\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"LEADERBOARD\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"排行榜\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"record-count\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_text_01\\\"\\n }\\n ],\\n \\\"showType\\\": \\\"podium\\\", // 展示类型:podium 领奖台/list 列表\\n \\\"showCount\\\": 10, // 显示条数\\n \\\"hideValue\\\": false,\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"filter\\\": []\\n },\\n// 折线图配置格式\\n \\\"LINE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"LINE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"折线图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"nullValue\\\": \\\"ignore\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"gridShow\\\": false,\\n \\\"label\\\": true,\\n \\\"labelHideOverlap\\\": true,\\n \\\"smooth\\\": false,\\n \\\"symbolType\\\": \\\"always\\\",\\n \\\"xAxisShow\\\": true,\\n \\\"xAxisLine\\\": false,\\n \\\"xAxisLabel\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"yAxisLine\\\": false,\\n \\\"yAxisLabel\\\": true,\\n \\\"fillType\\\": \\\"solid\\\",\\n \\\"filter\\\": []\\n }\\n// 抽奖配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"LOTTERY\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"LOTTERY\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"抽奖\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 必填,指标类型,合法值有:record-count(记录数)/ field(字段)\\n \\\"measureType\\\": \\\"record-count\\\",\\n // 必填,指标配置数组\\n \\\"measure\\\": [],\\n // 可选,输出表 ID,用于记录中奖结果\\n \\\"outputSheet\\\": \\\"\\\",\\n // 可选,滚动速度,默认为 5\\n \\\"speed\\\": 5,\\n // 可选,字体大小,默认为 20\\n \\\"fontSize\\\": 20,\\n // 可选,颜色主题,合法值有:COLOR_PALETTE_1 到 COLOR_PALETTE_10\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n // 必填,奖项配置数组,每个元素格式为 [数量, 名称]\\n \\\"gameRounds\\\": [\\n [\\n 1,\\n \\\"一等奖\\\"\\n ]\\n ],\\n // 可选,是否包含已中奖者,默认为 false\\n \\\"includeWinners\\\": false\\n },\\n// 跑马灯配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"MARQUEE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"MARQUEE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"跑马灯\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 可选,滚动文本内容\\n \\\"content\\\": \\\"这是一条滚动消息\\\",\\n // 可选,字体大小,默认为 14\\n \\\"fontSize\\\": 14,\\n // 可选,滚动速度,数值越小速度越快,默认为 50\\n \\\"speed\\\": 50,\\n // 可选,字体配置\\n \\\"fontSetting\\\": {\\n // 字体颜色\\n \\\"color\\\": \\\"\\\",\\n // 是否加粗,默认为 false\\n \\\"bold\\\": false,\\n // 是否斜体,默认为 false\\n \\\"italic\\\": false,\\n // 是否下划线,默认为 false\\n \\\"underline\\\": false\\n }\\n },\\n// NPS评分配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"NPS\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"NPS\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"NPS评分\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\"\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\"\\n }\\n ],\\n \\\"showLabel\\\": true,\\n \\\"showList\\\": false,\\n \\\"threshold\\\": [ // 评分阈值数组\\n 2,\\n 3\\n ],\\n \\\"colorSetName\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"filter\\\": []\\n },\\n// 百分比堆叠面积图配置格式\\n \\\"PERCENT_STACKED_AREA\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"PERCENT_STACKED_AREA\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"百分比堆叠面积图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\"\\n }\\n ],\\n \\\"smooth\\\": false,\\n \\\"symbolType\\\": \\\"always\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"filter\\\": []\\n }\\n// 百分比堆叠条形图配置格式\\n \\\"PERCENT_STACKED_BAR\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"PERCENT_STACKED_BAR\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"百分比堆叠条形图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_02\\\"\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"categoryAxisMaxRatio\\\": \\\"0.3\\\",\\n \\\"filter\\\": []\\n }\\n// 百分比堆叠柱状图配置格式\\n \\\"PERCENT_STACKED_HISTOGRAM\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"PERCENT_STACKED_HISTOGRAM\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"百分比堆叠柱状图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_02\\\"\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"filter\\\": []\\n }\\n// 饼图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"PIE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"PIE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"饼图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\", // 必须使用示例中的默认值如 COLOR_PALETTE_1,禁止自行编造\\n \\\"legend\\\": \\\"none\\\",\\n \\\"label\\\": true, // 必须设为 true 以默认显示数据标签\\n \\\"innerRadius\\\": 0, // 内半径,0 为实心饼图\\n \\\"outerRadius\\\": 60, // 外半径百分比\\n \\\"filter\\\": []\\n },\\n// 透视表配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"PIVOT\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"PIVOT\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"透视表\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 透视表配置,这是透视表的核心配置\\n \\\"pivotConfig\\\": {\\n // 必填,rows 是行字段列表,至少要有一个行字段,\\n // 每个字段配置中 fieldId 必须是该表中真实存在的字段 ID\\n // 如果多层分组,行字段列表中多个字段的 fieldId 依次对应每层分组的字段 ID\\n \\\"rows\\\": [\\n {\\n // 必填,行字段 ID(必须是该表中真实存在的字段 ID)\\n \\\"fld\\\": \\\"fld_01\\\",\\n // 可选,排序方式,合法值有:1(升序)和 -1(降序),默认为 1 升序\\n \\\"srt\\\": 1\\n }\\n ],\\n // 可选,columns 是列字段列表,默认为空数组,\\n // 每个字段配置中 fieldId 必须是该表中真实存在的字段 ID\\n // 如果多层分组,列字段列表中多个字段的 fieldId 依次对应每层分组的字段 ID\\n \\\"columns\\\": [\\n {\\n // 必填,列字段 ID(必须是该表中真实存在的字段 ID)\\n \\\"fld\\\": \\\"fld_02\\\",\\n // 可选,排序方式,合法值有:1(升序)和 -1(降序),默认为 1 升序\\n \\\"srt\\\": 1\\n }\\n ],\\n // 必填,values 是值字段列表,至少要有一个值字段,\\n // 每个字段配置中 fieldId 必须是该表中真实存在的字段 ID\\n // 值字段,是用于计算值的字段,通常是数值字段,但也可以是其他类型的字段(如文本字段),具体取决于聚合函数的要求\\n \\\"values\\\": [\\n {\\n // 必填,值字段 ID(必须是该表中真实存在的字段 ID)\\n \\\"fld\\\": \\\"fld_03\\\",\\n //必填,聚合函数,合法值有:sum /count / count_distinct / avg / min / max / median / population_variance / sample_variance / population_stddev / sample_stddev / first / last / range / mode / sum_of_squares / harmonic_mean / geometric_mean / interquartile_range / centered_mean / weighted_mean / kurtosis / skewness / quartile_median / range_median / coefficient_of_variation / adjusted_stddev / weighted_sum / weighted_count / weighted_count_distinct / weighted_avg / centered_weighted_mean / weighted_harmonic_mean / weighted_geometric_mean / weighted_range / weighted_range_median / weighted_interquartile_range / weighted_quartile_median / weighted_centered_mean / weighted_adjusted_stddev\\n \\\"agg\\\": \\\"sum\\\",\\n //可选,后聚合函数,合法值有:default / percent_of_row_total / percent_of_col_total / percent_of_grand_total\\n \\\"pgg\\\": \\\"string\\\",\\n //可选,格式化函数,合法值有:default / percentage / thousands / currency / scientific / fixed / integer\\n \\\"fmt\\\": \\\"\\\",\\n //可选,字段别名\\n \\\"als\\\": \\\"string\\\"\\n }\\n ],\\n // 是否显示行总计,默认为 true\\n \\\"rowTotals\\\": true,\\n // 是否显示列总计,默认为 true\\n \\\"columnTotals\\\": true\\n },\\n \\\"pivotStyle\\\": {\\n // 可选,透视表在卡片中的对齐方式,合法值有: start(上部)/ center(中间)\\n \\\"verticalAlign\\\": \\\"start\\\"\\n }\\n },\\n// 地图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"PLOT_MAP\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"PLOT_MAP\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"地图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 地图配置,这是地图的核心配置\\n \\\"plotMapConfig\\\": {\\n // 数据源配置\\n \\\"source\\\": {\\n // 数据源类型,合法值有:view(视图)\\n \\\"type\\\": \\\"view\\\",\\n // 数据源名称,格式为 \\\"sheetId:viewId\\\"\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"sheet_001:view_001\\\"\\n },\\n // 渲染器类型,合法值有:marker(标记点)/ heatmap(热力图)等\\n // 用于设置地图的渲染方式\\n \\\"renderer\\\": \\\"marker\\\",\\n // 处理器,用于对数据进行预处理\\n \\\"processor\\\": \\\"\\\",\\n // 维度配置,用于设置地图的维度字段(如地理位置字段)\\n \\\"dimensions\\\": [\\n {\\n // 必填,维度字段 ID(必须是该表中真实存在的字段 ID)\\n // 通常为位置字段,用于在地图上定位\\n \\\"fieldId\\\": \\\"fld_location_01\\\"\\n }\\n ],\\n // 度量配置,用于设置地图的度量字段(如数值字段)\\n \\\"measures\\\": [\\n {\\n // 必填,度量字段 ID(必须是该表中真实存在的字段 ID)\\n // 用于在地图上显示数值大小或颜色\\n \\\"fieldId\\\": \\\"fld_number_01\\\"\\n }\\n ],\\n // 样式配置,用于设置地图的显示样式\\n \\\"styles\\\": []\\n },\\n },\\n// ═══════════════════════════════════════════════════════════════════\\n // 图表类型:进度图(PROGRESS)\\n // 别名/同义词:进度条、进度环、进度卡、进度图表\\n // 用途:用于展示某项目标的完成进度,支持当前值 vs 目标值的对比,\\n // 可视化呈现完成百分比。适合展示销售目标达成率、任务完成度、\\n // 日期时间进度等场景。\\n // 重要:当用户说\\\"进度图\\\"、\\\"进度条\\\"、\\\"进度环\\\"、\\\"目标完成度\\\"时,\\n // 必须使用 chartType = \\\"PROGRESS\\\",不要使用其他图表类型。\\n // ═══════════════════════════════════════════════════════════════════\\n //\\n // ⚠️⚠️⚠️ 极其重要的注意事项(不遵守会导致图表渲染报错):\\n //\\n // 1. currentMeasure / targetMeasure 的格式是一个对象(Object),绝对不是数组(Array)!\\n // 不要使用普通图表的 measure 数组格式 [{ externalValue, value }],否则图表会报错!\\n //\\n // 2. 必须包含以下顶层通用字段,否则图表校验会失败并报「表格字段发生变化」错误:\\n // - \\\"measureType\\\": \\\"record-count\\\" ← 必填!缺少此字段图表必定报错\\n // - \\\"sheet\\\": \\\"\\u003csheetId\\u003e\\\" ← 必填!设置为 currentSheet 相同的值\\n // - \\\"view\\\": \\\"\\\" ← 必填!设置为空字符串\\n // - \\\"filter\\\": [] ← 必填!设置为空数组\\n //\\n // 3. currentFilter / targetFilter 中的每个筛选条件必须包含 \\\"link\\\" 字段:\\n // 正确:{ \\\"fieldId\\\": \\\"xxx\\\", \\\"symbol\\\": \\\"EQ\\\", \\\"value\\\": \\\"yyy\\\", \\\"link\\\": \\\"AND\\\" }\\n // 错误:{ \\\"fieldId\\\": \\\"xxx\\\", \\\"symbol\\\": \\\"EQ\\\", \\\"value\\\": \\\"yyy\\\" } ← 缺少 link!\\n // 注意:单选字段的 value 必须是选项的 ID(如 \\\"PO5PWsAqQi\\\"),不能是选项的显示文本(如 \\\"影院观影\\\")!\\n // 使用文本作为 value 会导致筛选条件无法匹配任何记录,当前值始终为 0。\\n //\\n // 4. 即使 targetSource 为 \\\"custom\\\",也必须提供 targetSheet、targetView、targetFilter、targetMeasure 的默认值\\n // 即使 currentSource 为 \\\"custom\\\",也必须提供 currentSheet、currentView、currentFilter、currentMeasure 的默认值\\n //\\n // 5. 必须包含 numberFormat 和 fixedCount 字段,否则当前值/目标值会显示异常(数值被乘以100、出现双%%、文案被挤掉不显示):\\n // - \\\"numberFormat\\\": { \\\"digits\\\": 0, \\\"format\\\": \\\"number\\\", \\\"thousandSeparator\\\": true } ← format 必须是 \\\"number\\\"!\\n // - \\\"fixedCount\\\": 0\\n //\\n \\\"PROGRESS\\\": {\\n // ── 顶层通用字段(必填,缺少会导致图表校验失败)─────────────────────────\\n // 必填,图表类型,固定值 \\\"PROGRESS\\\"(进度图)\\n \\\"chartType\\\": \\\"PROGRESS\\\",\\n // ⚠️ 必填,统计类型,进度图固定为 \\\"record-count\\\"\\n \\\"measureType\\\": \\\"record-count\\\",\\n // ⚠️ 必填,顶层数据表 ID,设置为 currentSheet 相同的值\\n \\\"sheet\\\": \\\"\\u003csheetId\\u003e\\\",\\n // ⚠️ 必填,顶层视图 ID,设置为空字符串\\n \\\"view\\\": \\\"\\\",\\n // ⚠️ 必填,顶层筛选条件,设置为空数组\\n \\\"filter\\\": [],\\n\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"进度图\\\",\\n // 必填,数据类型,合法值:number(数值进度)/ date(日期进度)\\n \\\"dataType\\\": \\\"number\\\",\\n // 必填,图表形状,合法值:bar(条形)/ semi-circle(半环)/ circle(圆环)\\n \\\"progressType\\\": \\\"bar\\\",\\n\\n // ── 目标值配置 ──────────────────────────────────────────────────────────\\n // 目标值来源,合法值:custom(自定义数值)/ sheet(从数据表字段聚合)\\n \\\"targetSource\\\": \\\"custom\\\",\\n // targetSource = \\\"custom\\\" 时填写,目标值的固定数值字符串\\n \\\"target\\\": \\\"500\\\",\\n // 必填,目标值来源的数据表 ID,即使 targetSource = \\\"custom\\\" 也要填写,设置为 currentSheet 相同的值\\n \\\"targetSheet\\\": \\\"\\u003csheetId\\u003e\\\",\\n // 必填,目标值来源的视图 ID,设置为空字符串\\n \\\"targetView\\\": \\\"\\\",\\n // 必填,目标值来源的过滤条件,targetSource = \\\"custom\\\" 时设置为空数组\\n \\\"targetFilter\\\": [],\\n // 必填,目标值聚合字段配置,targetSource = \\\"custom\\\" 时设置为默认值\\n // ⚠️ 格式必须是对象,不是数组!详见下方 currentMeasure 的格式说明,targetMeasure 格式完全相同\\n \\\"targetMeasure\\\": { \\\"type\\\": \\\"record-count\\\", \\\"fields\\\": [] },\\n // 可选,目标值的标签文字,显示在目标值旁边\\n \\\"targetText\\\": \\\"\\\",\\n\\n // ── 当前值配置 ──────────────────────────────────────────────────────────\\n // 当前值来源,合法值:custom(自定义数值)/ sheet(从数据表字段聚合)\\n \\\"currentSource\\\": \\\"custom\\\",\\n // currentSource = \\\"custom\\\" 时填写,当前值的固定数值字符串\\n \\\"current\\\": \\\"100\\\",\\n // 必填,当前值来源的数据表 ID\\n \\\"currentSheet\\\": \\\"\\u003csheetId\\u003e\\\",\\n // 必填,当前值来源的视图 ID,设置为空字符串表示全部数据\\n \\\"currentView\\\": \\\"\\\",\\n // 必填,当前值来源的过滤条件,currentSource = \\\"custom\\\" 时设置为空数组\\n // ⚠️ 每个筛选条件必须包含 \\\"link\\\" 字段!格式:\\n // { \\\"fieldId\\\": \\\"\\u003cfieldId\\u003e\\\", \\\"symbol\\\": \\\"EQ\\\", \\\"value\\\": \\\"\\u003c选项ID\\u003e\\\", \\\"link\\\": \\\"AND\\\" }\\n // 多个条件时,第一个条件的 link 也必须填 \\\"AND\\\"\\n \\\"currentFilter\\\": [],\\n // 必填,当前值聚合字段配置\\n // ═══════════════════════════════════════════════════════════════════\\n // ⚠️⚠️⚠️ 极其重要:currentMeasure 是一个 Object,不是 Array!\\n // 绝对不要写成 [{ externalValue: [...], value: \\\"xxx\\\" }] 这种数组格式!\\n // 正确格式如下:\\n //\\n // 方式一:记录计数(统计满足条件的记录总数)\\n // { \\\"type\\\": \\\"record-count\\\", \\\"fields\\\": [] }\\n //\\n // 方式二:字段聚合(对某个字段做聚合计算)\\n // { \\\"type\\\": \\\"field\\\", \\\"fields\\\": [{ \\\"value\\\": \\\"\\u003cfieldId\\u003e\\\", \\\"formula\\\": \\\"\\u003c聚合函数\\u003e\\\" }] }\\n // formula 合法值:count / unique-count / sum / average / max / min\\n //\\n // 错误示例(绝对禁止):\\n // [{ \\\"externalValue\\\": [{ \\\"type\\\": \\\"formula\\\", \\\"value\\\": \\\"count\\\" }], \\\"value\\\": \\\"fieldId\\\" }]\\n // ═══════════════════════════════════════════════════════════════════\\n \\\"currentMeasure\\\": { \\\"type\\\": \\\"record-count\\\", \\\"fields\\\": [] },\\n // 可选,当前值的标签文字,显示在当前值旁边\\n \\\"currentText\\\": \\\"\\\",\\n\\n // ── 数值格式配置 ──────────────────────────────────────────────────────────\\n // ⚠️ 必填,百分比小数位数,缺少会导致小数位数异常,默认填 0\\n \\\"fixedCount\\\": 0,\\n // ⚠️ 必填,数字格式化配置(作用于当前值和目标值的显示)\\n // 缺少此字段会导致数值显示异常(数值被乘以100、出现双%%符号、文案被挤掉不显示)\\n \\\"numberFormat\\\": {\\n // 小数位数,默认 0\\n \\\"digits\\\": 0,\\n // ⚠️ 格式类型,进度图必须填 \\\"number\\\"!绝对不要填 \\\"percent\\\",否则数值会被乘以100并多出%符号\\n // 合法值:number / percent / thousand,进度图固定填 \\\"number\\\"\\n \\\"format\\\": \\\"number\\\",\\n // 是否显示千位分隔符\\n \\\"thousandSeparator\\\": true\\n },\\n // 可选,数值单位,如 \\\"¥\\\" / \\\"$\\\" / \\\"人\\\" / \\\"%\\\" 等自定义字符串,不填则无单位\\n \\\"modifier\\\": \\\"\\\",\\n // 可选,单位位置,合法值:left(左)/ right(右),默认 left\\n \\\"modifierPosition\\\": \\\"left\\\",\\n // 可选,目标方向,合法值:increase(越大越好)/ decrease(越小越好),影响进度条配色逻辑\\n \\\"targetDirection\\\": \\\"increase\\\",\\n\\n // ── 日期进度(dataType = \\\"date\\\")专属配置 ────────────────────────────────\\n // 目标日期范围,合法值:month(本月)/ quarter(本季度)/ year(今年)/ custom(自定义)\\n \\\"targetDateSelected\\\": \\\"month\\\",\\n // targetDateSelected = \\\"custom\\\" 时填写,自定义目标日期范围 [开始时间戳, 结束时间戳]\\n \\\"targetDateRange\\\": null,\\n // 当前日期,合法值:today(今日)/ yesterday(昨日)/ custom(自定义)\\n \\\"currentDateSelected\\\": \\\"today\\\",\\n // currentDateSelected = \\\"custom\\\" 时填写,自定义当前日期时间戳\\n \\\"currentDate\\\": null,\\n // 日期格式,如 \\\"YYYY-MM-DD\\\",仅在 targetDateSelected 或 currentDateSelected 为 custom 时生效\\n \\\"dateFormat\\\": \\\"YYYY-MM-DD\\\",\\n\\n // ── 样式配置 ──────────────────────────────────────────────────────────────\\n // 可选,卡片背景颜色,十六进制色值,如 \\\"#F0F5FF\\\"\\n \\\"background\\\": \\\"\\\",\\n // 可选,百分比数字颜色,十六进制色值,如 \\\"#1677FF\\\"\\n \\\"percentageColor\\\": \\\"\\\",\\n // 可选,进度条填充颜色,支持两种形式:\\n // 1. 固定色值字符串,如 \\\"#1677FF\\\",或渐变色 \\\"linear-gradient(...)\\\"(圆环图支持渐变)\\n // 2. 条件配色对象(根据百分比区间动态变色),格式参考 dashboard-config-example 中的 colors 配置\\n \\\"strokeColor\\\": \\\"\\\",\\n // 可选,进度条背景颜色\\n \\\"strokeBgColor\\\": \\\"\\\",\\n // 可选,当前值文字颜色(仅 dataType=number 时生效)\\n \\\"currentColor\\\": \\\"\\\",\\n // 可选,目标值文字颜色\\n \\\"targetColor\\\": \\\"\\\"\\n },\\n// 查询页配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"QUERY_PAGE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"QUERY_PAGE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"查询页\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"\\\",\\n // 查询页无其他特殊配置字段,\\n // 主要用于提供数据查询和展示的基础功能\\n },\\n// 雷达图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"RADAR\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"RADAR\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"雷达图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"xSortBy\\\": \\\"y\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"radarShape\\\": \\\"circle\\\",\\n \\\"isFilled\\\": true,\\n \\\"gridShow\\\": true,\\n \\\"yAxisLine\\\": true,\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": true,\\n \\\"filter\\\": []\\n },\\n// 富文本配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"RICH_TEXT\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"RICH_TEXT\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"富文本\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 可选,富文本内容,支持 HTML 格式\\n \\\"content\\\": \\\"\\\"\\n },\\n// 玫瑰图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"ROSE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"ROSE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"玫瑰图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"none\\\",\\n \\\"label\\\": true,\\n \\\"innerRadius\\\": 0,\\n \\\"outerRadius\\\": 60,\\n \\\"filter\\\": []\\n },\\n// 散点图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"SCATTER\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"SCATTER\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"散点图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_02\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"smooth\\\": false,\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"gridShow\\\": false,\\n \\\"label\\\": false,\\n \\\"xAxisShow\\\": true,\\n \\\"xAxisLine\\\": false,\\n \\\"xAxisLabel\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"yAxisLine\\\": false,\\n \\\"yAxisLabel\\\": true,\\n \\\"filter\\\": []\\n },\\n// 筛选器配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"SLICER\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"SLICER\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"筛选器\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 可选,筛选器样式,合法值有:button(按钮)/ dropdown(下拉),默认为 button\\n \\\"sli_filterStyle\\\": \\\"button\\\",\\n // 可选,排序方式,合法值有:asc(升序)/ desc(降序),默认为 asc\\n \\\"sli_orderBy\\\": \\\"asc\\\",\\n // 可选,是否多选,默认为 true\\n \\\"sli_multiple\\\": true,\\n // 可选,是否显示数量,默认为 true\\n \\\"sli_showCount\\\": true,\\n // 可选,日期操作符,合法值有:BEFORE / AFTER / BETWEEN 等\\n \\\"sli_dateOperator\\\": \\\"BEFORE\\\",\\n // 可选,数字操作符,合法值有:EQ(等于)/ NE(不等于)/ GT(大于)等\\n \\\"sli_numberOperator\\\": \\\"EQ\\\",\\n // 可选,关联到图表的方式,合法值有:auto(自动)/ manual(手动),默认为 auto\\n \\\"sli_2Chart\\\": \\\"auto\\\",\\n // 可选,关联到其他筛选器的方式,合法值有:auto(自动)/ manual(手动),默认为 auto\\n \\\"sli_2Slicer\\\": \\\"auto\\\",\\n // 可选,对齐方式,合法值有:top(顶部)/ bottom(底部),默认为 top\\n \\\"sli_align\\\": \\\"top\\\",\\n // 可选,选择样式,合法值有:1 / 2 / 3 等,默认为 1\\n \\\"sli_selectStyle\\\": \\\"1\\\",\\n // 必填,绑定的字段 ID(必须是该表中真实存在的字段 ID)\\n \\\"sli_fieldId\\\": \\\"fld_select_01\\\"\\n },\\n// 堆叠面积图配置格式\\n \\\"STACKED_AREA\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"STACKED_AREA\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"堆叠面积图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\"\\n }\\n ],\\n \\\"smooth\\\": false,\\n \\\"symbolType\\\": \\\"always\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": false,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"filter\\\": []\\n }\\n// 堆叠条形图配置格式\\n \\\"STACKED_BAR\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"STACKED_BAR\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"堆叠条形图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_02\\\"\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"bottom\\\",\\n \\\"label\\\": false,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"categoryAxisMaxRatio\\\": \\\"0.3\\\",\\n \\\"filter\\\": []\\n }\\n// 堆叠柱状图配置格式\\n \\\"STACKED_HISTOGRAM\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"STACKED_HISTOGRAM\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"堆叠柱状图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\"\\n }\\n ],\\n \\\"xSortBy\\\": \\\"x\\\",\\n \\\"sortRule\\\": \\\"asc\\\",\\n \\\"nullValue\\\": \\\"ignore\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"bottom\\\",\\n \\\"gridShow\\\": false,\\n \\\"label\\\": false,\\n \\\"labelHideOverlap\\\": true,\\n \\\"xAxisShow\\\": true,\\n \\\"xAxisLine\\\": false,\\n \\\"xAxisLabel\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"yAxisLine\\\": false,\\n \\\"yAxisLabel\\\": true,\\n \\\"fillType\\\": \\\"solid\\\",\\n \\\"filter\\\": []\\n }\\n// 堆叠折线图配置格式\\n \\\"STACKED_LINE\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"STACKED_LINE\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"堆叠折线图\\\",\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_date_01\\\",\\n \\\"externalValue\\\": []\\n }\\n ],\\n \\\"group\\\": [\\n {\\n \\\"value\\\": \\\"fld_select_01\\\"\\n }\\n ],\\n \\\"smooth\\\": false,\\n \\\"symbolType\\\": \\\"always\\\",\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"legend\\\": \\\"top\\\",\\n \\\"label\\\": false,\\n \\\"xAxisShow\\\": true,\\n \\\"yAxisShow\\\": true,\\n \\\"filter\\\": []\\n }\\n// 标准列表视图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"STANDARD_LIST_VIEW\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"STANDARD_LIST_VIEW\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"标准列表视图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId\\n \\\"view\\\": \\\"view_001\\\",\\n // 无 filter 时请传空数组,\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置) 中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 视图排序配置,用于设置视图的默认排序规则\\n \\\"viewSort\\\": [],\\n // 隐藏字段配置,key 为 fieldId,value 为 true/false\\n \\\"hiddenFields\\\": {},\\n // 列排序配置,用于设置列的显示顺序\\n \\\"columnSort\\\": [],\\n // 列表自定义配置,用于设置列表的自定义样式和行为\\n \\\"listCustom\\\": {},\\n // 列表配置,用于设置列表的显示方式和布局\\n \\\"listConfig\\\": {},\\n // 字段聚合映射,用于设置字段的聚合方式\\n \\\"fieldAggregateMap\\\": {},\\n // 工具栏配置,用于控制标准列表视图中工具栏的功能按钮\\n \\\"toolbarConfig\\\": {\\n // 是否显示创建行按钮\\n \\\"enableCreateRow\\\": false,\\n // 是否显示筛选按钮\\n \\\"enableFilter\\\": true,\\n // 是否显示分组按钮\\n \\\"enableGroup\\\": true,\\n // 是否显示排序按钮\\n \\\"enableSort\\\": true,\\n // 是否显示查找按钮\\n \\\"enableFind\\\": true,\\n // 是否显示详情记录按钮\\n \\\"enableDetailRecord\\\": true,\\n // 是否显示编辑记录按钮\\n \\\"enableEditRecord\\\": false\\n },\\n },\\n// ═══════════════════════════════════════════════════════════════════\\n // 图表类型:指标卡(STATISTICS)\\n // 别名/同义词:KPI 卡、指标图、数据指标卡、关键指标卡\\n // 用途:以大号数字展示核心指标,并可附加环同比(与上期对比的涨跌幅)\\n // 和趋势折线图,适合展示销售额、DAU、转化率等需要对比分析的 KPI 指标。\\n // 与\\\"统计数字(SUMMARY)\\\"的区别:指标卡支持环同比对比和趋势图,\\n // 功能更丰富;统计数字仅展示单一数字,更简洁。\\n // 重要:当用户说\\\"指标卡\\\"、\\\"KPI 卡\\\"、\\\"指标图\\\"、\\\"关键指标\\\"、\\\"带趋势的数字\\\"时,\\n // 必须使用 chartType = \\\"STATISTICS\\\",不要使用其他图表类型。\\n // ═══════════════════════════════════════════════════════════════════\\n \\\"STATISTICS\\\": {\\n // 必填,图表类型,固定值 \\\"STATISTICS\\\"(指标卡)\\n \\\"chartType\\\": \\\"STATISTICS\\\",\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"指标卡\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时为 null,传入时必须是该表中真实存在的 viewId\\n \\\"view\\\": null,\\n // 无 filter 时请传空数组;\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置)中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 统计指标配置,measureType 与 measure 二选一:\\n // measureType = \\\"record-count\\\" 时统计记录总数,无需填 measure;\\n // measureType = \\\"field\\\" 时需填 measure,指定聚合字段和聚合函数\\n \\\"measureType\\\": \\\"field\\\",\\n // 可选,当 measureType = \\\"field\\\" 时必填,指定聚合字段\\n \\\"measure\\\": [\\n {\\n // 必填,字段 ID(必须是该表中真实存在的数值类字段 ID)\\n \\\"value\\\": \\\"fld_number_01\\\",\\n // 必填,聚合函数配置\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n // formula 合法值:count (计数), unique-count (去重计数), sum (求和), average (平均值), max (最大值), min (最小值)'\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n // 可选,指标说明文字,显示在数值下方\\n \\\"desc\\\": \\\"\\\",\\n // 可选,数字格式化配置\\n \\\"numberFormat\\\": {\\n // 小数位数,默认 0\\n \\\"digits\\\": 0,\\n // 格式类型,合法值:number / percent / thousand\\n \\\"format\\\": \\\"number\\\",\\n // 是否显示千位分隔符\\n \\\"thousandSeparator\\\": true\\n },\\n // 可选,是否显示环同比,默认 false\\n \\\"showComparison\\\": false,\\n // 可选,showComparison=true 时填写,环同比对比的日期字段 ID\\n \\\"comparisonField\\\": null,\\n // 可选,环同比时间范围,如 \\\"this_week\\\" / \\\"this_month\\\" / \\\"this_year\\\"\\n \\\"comparisonDateRange\\\": null,\\n // 可选,环同比类型,合法值:sequential(环比)/ year-on-year(同比)/ month-on-month(月比)/ week-on-week(周比)/ custom(自定义)\\n \\\"comparisonType\\\": \\\"sequential\\\",\\n // 可选,时间统计方式,合法值:same_period(同期)/ cumulative(累计)\\n \\\"comparisonPeriodType\\\": \\\"same_period\\\",\\n // 可选,环同比计算类型,合法值:difference-rate(差值率)/ difference-value(差值)/ original-value(原值)\\n \\\"comparisonCalculationType\\\": \\\"difference-rate\\\",\\n // 可选,环同比布局方向(仅 showComparison=true 且 showTrend=false 时生效),合法值:bottom(下方)/ right(右侧)\\n \\\"comparisonLayout\\\": \\\"bottom\\\",\\n // 可选,是否显示趋势图,默认 false\\n \\\"showTrend\\\": false,\\n // 可选,showTrend=true 时填写,趋势图使用的日期字段 ID\\n \\\"trendField\\\": null,\\n // 可选,趋势图时间范围,如 \\\"this_week\\\" / \\\"this_month\\\" / \\\"this_year\\\"\\n \\\"trendDateRange\\\": null,\\n // 可选,趋势图布局方向(仅 showTrend=true 且 showComparison=false 时生效),合法值:bottom(下方)/ right(右侧)\\n \\\"trendLayout\\\": \\\"bottom\\\",\\n // 可选,趋势图颜色,十六进制色值,如 \\\"#1677FF\\\"\\n \\\"trendColor\\\": \\\"\\\",\\n // 可选,环同比图标样式,合法值:1 / 2 / 3 / 4 / 5 / 6 / 7 / 8\\n \\\"iconStyle\\\": \\\"5\\\",\\n // 可选,卡片标题颜色,十六进制色值\\n \\\"titleColor\\\": \\\"\\\",\\n // 可选,指标说明文字颜色,十六进制色值\\n \\\"descColor\\\": \\\"\\\",\\n // 可选,环同比描述颜色,十六进制色值\\n \\\"comparisonDescColor\\\": \\\"\\\",\\n // 可选,数值颜色配置,支持两种形式:\\n // 1. 固定色值字符串,如 \\\"#1677FF\\\",或渐变色 \\\"linear-gradient(...)\\\"\\n // 2. 条件配色对象(根据数值区间动态变色),格式参考 dashboard-config-example 中的 colors 配置\\n \\\"colors\\\": \\\"\\\"\\n },\\n// ═══════════════════════════════════════════════════════════════════\\n // 图表类型:统计数字(SUMMARY)\\n // 别名/同义词:汇总数字、统计卡、数字卡、计数卡\\n // 用途:以大号数字形式展示单一聚合指标(如记录总数、字段求和/均值等),\\n // 是最简洁的数据汇总展示方式,适合展示总销售额、总订单数、平均分等。\\n // 与其他图表的关键区别:\\n // - 与\\\"指标卡(STATISTICS)\\\"的区别:统计数字更简洁,无环同比、无趋势图;\\n // 指标卡功能更丰富,支持环同比对比和趋势折线图。\\n // - 与\\\"柱状图(HISTOGRAM)\\\"的关键区别:统计数字只展示一个聚合数字(单值卡片),\\n // 无坐标轴、无分类对比;柱状图展示多个分类的数值对比,有 X/Y 轴(多值图表)。\\n // 重要:当用户说\\\"统计数字\\\"、\\\"汇总数字\\\"、\\\"数字卡\\\"、\\\"计数\\\"、\\\"总数\\\"时,\\n // 必须使用 chartType = \\\"SUMMARY\\\",不要使用 HISTOGRAM 或其他图表类型。\\n // ═══════════════════════════════════════════════════════════════════\\n \\\"SUMMARY\\\": {\\n // 必填,图表类型,固定值 \\\"SUMMARY\\\"(统计数字)\\n \\\"chartType\\\": \\\"SUMMARY\\\",\\n // 必填,卡片标题,用户在仪表盘中看到的图表名称,应准确且见名知意\\n \\\"name\\\": \\\"统计数字\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时为 null,传入时必须是该表中真实存在的 viewId\\n \\\"view\\\": null,\\n // 无 filter 时请传空数组;\\n // 如果传入 filter,可参考 dashboard-config-example(仪表盘示例配置)中 filters 的 filter 格式,\\n // 注意 filter 中的 fieldId 必须是该表中真实存在的字段 ID\\n \\\"filter\\\": [],\\n // 统计指标配置,measureType 与 measure 二选一:\\n // measureType = \\\"record-count\\\" 时统计记录总数,无需填 measure;\\n // measureType = \\\"field\\\" 时需填 measure,指定聚合字段和聚合函数\\n \\\"measureType\\\": \\\"field\\\",\\n // 可选,当 measureType = \\\"field\\\" 时必填,指定聚合字段\\n \\\"measure\\\": [\\n {\\n // 必填,字段 ID(必须是该表中真实存在的数值类字段 ID)\\n \\\"value\\\": \\\"fld_number_01\\\",\\n // 必填,聚合函数配置\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n // formula 合法值:count (计数), unique-count (去重计数), sum (求和), average (平均值), max (最大值), min (最小值)'\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n // 可选,数字格式化配置\\n \\\"numberFormat\\\": {\\n // 小数位数,默认 0\\n \\\"digits\\\": 0,\\n // 格式类型,合法值:number / percent / thousand\\n \\\"format\\\": \\\"number\\\",\\n // 是否显示千位分隔符\\n \\\"thousandSeparator\\\": true\\n },\\n // 可选,指标说明文字,由用户在编辑器中输入,传给服务端后显示在数值下方\\n \\\"desc\\\": \\\"\\\",\\n // 可选,数值颜色配置,支持两种形式:\\n // 1. 固定色值字符串,如 \\\"#1677FF\\\",或渐变色 \\\"linear-gradient(...)\\\"\\n // 2. 条件配色对象(根据数值区间动态变色),格式参考 dashboard-config-example 中的 colors 配置\\n \\\"colors\\\": \\\"\\\"\\n },\\n// 标签页配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"TABS\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"TABS\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"标签页\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n // 可选,标签页样式类型,合法值有:type1 到 type10,默认为 type1\\n \\\"tabsStyleType\\\": \\\"type1\\\",\\n // 可选,标签页对齐方式,合法值有:left(左对齐)/ center(居中)/ right(右对齐),默认为 left\\n \\\"tabsAlignType\\\": \\\"left\\\",\\n // 可选,默认激活的标签页 ID,必须与 tabs 数组中的某个 id 匹配\\n \\\"activeTabId\\\": \\\"tab_001\\\",\\n // 必填,标签页数组\\n \\\"tabs\\\": [\\n {\\n // 必填,标签页 ID(必须唯一)\\n \\\"id\\\": \\\"tab_001\\\",\\n // 必填,标签页名称\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"标签页 1\\\"\\n },\\n {\\n \\\"id\\\": \\\"tab_002\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"标签页 2\\\"\\n },\\n {\\n \\\"id\\\": \\\"tab_003\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"标签页 3\\\"\\n }\\n ]\\n },\\n// 词云图配置格式,必须按照此格式配置,否则会导致解析错误\\n \\\"WORD_CLOUD\\\": {\\n // 必填,图表的类型,不传或传错图表将渲染异常\\n \\\"chartType\\\": \\\"WORD_CLOUD\\\",\\n // 必填,图表的名称,是仪表盘中用户看到的图表卡片的标题,应该准确且见名知意\\n \\\"name\\\": \\\"词云图\\\",\\n // 必填,数据表 ID(必须是真实存在的 tableId),可通过 get_base 获取\\n \\\"sheet\\\": \\\"sheet_001\\\",\\n // 可选,视图 ID,不传时直接 null 或 undefined,如果传 viewId 必须是真实存在的 viewId)\\n \\\"view\\\": \\\"view_001\\\",\\n \\\"measureType\\\": \\\"field\\\",\\n \\\"measure\\\": [\\n {\\n \\\"value\\\": \\\"fld_number_01\\\",\\n \\\"externalValue\\\": [\\n {\\n \\\"type\\\": \\\"formula\\\",\\n \\\"value\\\": \\\"sum\\\"\\n }\\n ]\\n }\\n ],\\n \\\"dimension\\\": [\\n {\\n \\\"value\\\": \\\"fld_text_01\\\"\\n }\\n ],\\n \\\"disableParticiple\\\": false, // 是否禁用分词\\n \\\"colors\\\": \\\"COLOR_PALETTE_1\\\",\\n \\\"filter\\\": []\\n },\\n}\\n\",\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Dashboard widgets config example returned. Each key is a chart type (e.g. HISTOGRAM, PIE), and the value is the corresponding widget config example. Use the matching chart type's config as a reference when calling create_chart.\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1286
},
{
"service": "aitable",
"command": "+dashboard-config-example",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +dashboard-config-example --yes --format json",
"args": [
"aitable",
"+dashboard-config-example",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": \"// 注意\\n// 1. 下述 JSON 示例中的注释(// 开头的注释)仅用于说明,实际使用时请删除,否则会导致解析错误\\n// 2. 当一个仪表盘创建完成,并添加图表完成后,检查一下布局,如果有空白或不对齐的图表,请调用 update_chart 优化布局\\n// 3. 当一个仪表盘完整创建后,包括图表也添加完成后,可通过 get_dashboard 接口查看仪表盘详情,检查布局是合适(没有空白或不对齐),如果有问题,调用 update_chart 优化布局\\n// 4. 仪表盘创建好并优化布局后,向用户输出仪表盘链接 URL(注意是仪表盘 URL),方便用户直接访问和使用仪表盘\\n\\n{\\n // 服务端自动生成,调用方传入会被忽略\\n \\\"id\\\": \\\"dashboard_001\\\",\\n // 必填,dashboard 名称,是整个仪表盘的标题,一定要传入,且清晰明确,方便用户使用\\n \\\"name\\\": \\\"示例仪表盘\\\",\\n // 必须使用本示例中的默认主题,禁止自行编造,随意生成的主题无法解析和渲染\\n \\\"theme\\\": {\\n // 必须为 DEFAULT\\n \\\"key\\\": \\\"DEFAULT\\\",\\n // 主题背景色,大部分情况下「传入 null 或 undefined」,使用默认即可\\n \\\"background\\\": null,\\n \\\"image\\\": \\\"\\\"\\n },\\n // 可选,全局筛选条件数组;每个元素对应一张数据表的筛选规则\\n \\\"filters\\\": [\\n {\\n // 要筛选的数据表 ID(必须是真实存在的 tableId)\\n \\\"sheetId\\\": \\\"sheet_001\\\",\\n // 筛选条件数组;第一个条件的 link 必须为 null,后续条件用 \\\"AND\\\" 或 \\\"OR\\\" 连接\\n \\\"filter\\\": [\\n {\\n // 要筛选的字段 ID(必须是该表中真实存在的 fieldId)\\n \\\"fieldId\\\": \\\"fld_001\\\",\\n // 条件连接符:第一个条件必须为 null,后续条件为 \\\"AND\\\" 或 \\\"OR\\\"\\n \\\"link\\\": null,\\n // 固定为 1\\n \\\"version\\\": 1,\\n // 比较符号,合法值按字段类型分组如下:\\n // 文本类: EQ(等于), NE(不等于), CONTAIN(包含), EXCLUSIVE(不包含) — value 为字符串\\n // 数字类: EQ, NE, GT(大于), LT(小于), GTE(大于等于), LTE(小于等于) — value 为数字\\n // 日期类: DATE_EQ(日期等于), BEFORE(早于), AFTER(晚于), NOT_AFTER(不晚于), NOT_BEFORE(不早于) — value 为 \\\"yyyy-MM-dd\\\" 格式字符串\\n // 选项类: ANY_OF(包含任一), ALL_OF(包含全部), NONE_OF(不包含任一) — value 为选项 ID 字符串数组,如 [\\\"opt_001\\\", \\\"opt_002\\\"]\\n // 存在性: EXIST(有值), UN_EXIST(无值) — value 为 null\\n \\\"symbol\\\": \\\"EQ\\\",\\n // value 的类型取决于 symbol,参见上方说明\\n \\\"value\\\": \\\"已完成\\\"\\n }\\n ]\\n }\\n ],\\n // 图表布局数组;创建时会被忽略(默认空数组),更新时有效\\n // 每个元素描述一个图表在网格中的位置和尺寸\\n // layout 的更新,需要通过 update_chart 接口更新到每个图表上,update_chart 接口会自动根据 layout 调整仪表盘布局\\n // 无法通过 update_dashboard 接口直接更新布局,必须通过 update_chart 接口更新图表来间接更新布局\\n \\\"layout\\\": [\\n {\\n // 对应的 widget/chart ID\\n \\\"i\\\": \\\"widget_001\\\",\\n // 横坐标(列位置,从 0 开始,取值范围 0~11)\\n \\\"x\\\": 0,\\n // 纵坐标(行位置,从 0 开始,无上限)\\n \\\"y\\\": 0,\\n // 宽度(占几列,网格总宽 12 列,取值范围 1~12,同一行所有图表的 w 之和应等于 12)\\n \\\"w\\\": 12,\\n // 高度(占几行,取值范围 1~N,同一行的图表必须保持相同高度)\\n \\\"h\\\": 6,\\n // 最小宽度(可选,限制用户拖拽缩放的下限)\\n \\\"minW\\\": 4,\\n // 最小高度(可选,限制用户拖拽缩放的下限)\\n \\\"minH\\\": 3,\\n // 可选,所属分组 ID(用于 COMPOSITE_LAYOUT 组合布局,不使用分组时省略)\\n \\\"parentId\\\": \\\"group_001\\\"\\n }\\n ]\\n}\",\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Dashboard config example returned. The 'id' field is for structure reference only; it will be auto-generated by the server when creating a dashboard. The 'layout' field is ignored when creating (defaults to empty array), but effective when updating.\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1064
},
{
"service": "aitable",
"command": "+dashboard-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +dashboard-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --dashboard-id KY9tlWg5NEHgfs8WT6IO2 --yes --format json",
"args": [
"aitable",
"+dashboard-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--dashboard-id",
"KY9tlWg5NEHgfs8WT6IO2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartCount\": 8,\n \"charts\": [\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-dlxFo0tNSImp4ITpDn5fQ\",\n \"chartName\": \"各业务线未部署数\",\n \"chartType\": \"BAR\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-OQW55ZoOPT3abjYxQbdBo\",\n \"chartName\": \"部署完成率\",\n \"chartType\": \"PIE\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"0ed6ae150c7e43508d504b741ca1b19a\",\n \"chartName\": \"设备付费情况分布\",\n \"chartType\": \"PIE\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-dqjTHaYZdhbSTwRk3JEjI\",\n \"chartName\": \"领取人未部署排行\",\n \"chartType\": \"LEADERBOARD\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-qqMeLF69BEVnKCglPUPRw\",\n \"chartName\": \"验证情况分析\",\n \"chartType\": \"BAR\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-tIkpYHZqciaEu0ypokSEt\",\n \"chartName\": \"部署时间趋势\",\n \"chartType\": \"LINE\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-PcnRUOqW5RzJHFZ1BxQJe\",\n \"chartName\": \"客户未部署分布\",\n \"chartType\": \"HISTOGRAM\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n },\n {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"chartId\": \"widget-8LICblz3EqyoLbkyM22Bw\",\n \"chartName\": \"付费状态漏斗\",\n \"chartType\": \"FUNNEL\",\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\"\n }\n ],\n \"dashboardId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"dashboardName\": \"仪表盘\",\n \"filters\": [],\n \"layout\": [\n {\n \"h\": 4,\n \"i\": \"widget-05w7XiwviqQgWrMxmvP20\",\n \"w\": 12,\n \"x\": 0,\n \"y\": 0\n },\n {\n \"h\": 5,\n \"i\": \"widget-dlxFo0tNSImp4ITpDn5fQ\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 4\n },\n {\n \"h\": 5,\n \"i\": \"widget-PcnRUOqW5RzJHFZ1BxQJe\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 4\n },\n {\n \"h\": 5,\n \"i\": \"widget-qqMeLF69BEVnKCglPUPRw\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 9\n },\n {\n \"h\": 5,\n \"i\": \"widget-tIkpYHZqciaEu0ypokSEt\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 9\n },\n {\n \"h\": 5,\n \"i\": \"widget-OQW55ZoOPT3abjYxQbdBo\",\n \"w\": 4,\n \"x\": 0,\n \"y\": 14\n },\n {\n \"h\": 5,\n \"i\": \"widget-dqjTHaYZdhbSTwRk3JEjI\",\n \"w\": 4,\n \"x\": 4,\n \"y\": 14\n },\n {\n \"h\": 5,\n \"i\": \"widget-8LICblz3EqyoLbkyM22Bw\",\n \"w\": 4,\n \"x\": 8,\n \"y\": 14\n },\n {\n \"h\": 4,\n \"i\": \"0ed6ae150c7e43508d504b741ca1b19a\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 0\n }\n ],\n \"meta\": {}\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got dashboard KY9tlWg5NEHgfs8WT6IO2. URL rules: AI 表格仪表盘访问地址: https://docs.dingtalk.com/i/nodes/{baseId}?iframeQuery=applicationId%3D{dashboardId}. User-facing guidance: 面向用户时要以人为本、友好直观,优先展示 **实体名称**、可点击链接和必要上下文,尽量隐藏 `baseId`、`tableId`、`viewId`、`dashboardId`、`documentId` 等技术细节;除非用户明确索要或排障必须,否则不要直接呈现这些 ID。\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1179
},
{
"service": "aitable",
"command": "+field-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +field-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --field-ids 01ZM8y7 --yes --format json",
"args": [
"aitable",
"+field-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--field-ids",
"01ZM8y7",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"fields\": [\n {\n \"aiConfig\": {\n \"autoRecompute\": false,\n \"computeOnEmptyRef\": false,\n \"enableThinking\": false,\n \"enableWebSearch\": false,\n \"imageConfig\": {\n \"aiGeneratedWatermark\": true,\n \"count\": 1,\n \"resolution\": \"1024*1024\"\n },\n \"outputType\": \"text\",\n \"prompt\": [\n {\n \"type\": \"text\",\n \"value\": \"你是一位贴心的文字识别助手,当用户需要识别图片中的文字时(如菜单、传单、说明书),清晰识别出内容。\\n\\n执行前严格验证输入:\\n- 如果未提供图片,立即回复:\\\"请上传需要识别文字的图片,我帮您快速查看内容!\\\"\\n- 如果图片模糊/黑暗,回复:\\\"图片不太清楚,建议:1) 重新拍摄 2) 对准文字区域 3) 确保光线充足\\\"\\n当输入有效时,按以下规则生成结果(禁用任何技术格式):\\n1. 识别原则(像真人一样读图)\\n - 严格按阅读顺序朗读文字,保留原换行与空格\\n - 模糊处标注\\\"(看不清)\\\",不猜测内容(例:\\\"价(格)\\\")\\n - 保留所有标点、符号和大小写(如\\\"¥25\\\"不改为\\\"25元\\\")\\n - 表格按\\\"从左到右、从上到下\\\"顺序朗读\\n2. 输出格式要求(必须遵守)\\n - 禁用JSON/XML/代码块,仅用**模拟纸质文档**的直观格式\\n - 示例(基于用户输入):\\n 欢迎光临\\n ABC咖啡店\\n 今日特惠:\\n 拿铁 ¥25\\n 卡布奇诺 ¥28\\n 营业时间:8:00-22:00\\n3. 关键控制规则\\n - 排版还原:用空行分隔段落,保留项目符号(如\\\"•\\\")\\n - 模糊处理:单个模糊字符→\\\"(看不清)\\\",连续模糊→\\\"(此处有文字但看不清)\\\"\\n - 语言提示:仅列出主要语言(如\\\"中文为主,含少量英文\\\")\\n - 空结果处理:写\\\"未检测到清晰文字,请检查图片\\\"\\n - 绝对禁止:不添加任何解释(如\\\"根据OCR技术...\\\")\\n4. 禁止行为\\n × 生成任何JSON/XML代码 \\n × 使用术语如\\\"full_text\\\"、\\\"lines\\\" \\n × 修改原始文字内容(如\\\"¥25\\\"不改为\\\"25元\\\")\\n\\n下面是你要总结和分析的原始内容\"\n },\n {\n \"fieldId\": \"2hfk5Hd\",\n \"type\": \"fieldRef\"\n },\n {\n \"type\": \"text\",\n \"value\": \",只保留识别结果中的“序列号”或者“Serial No\\\"\"\n }\n ],\n \"type\": \"ai-agent\"\n },\n \"fieldId\": \"01ZM8y7\",\n \"fieldName\": \"序列号\",\n \"type\": \"text\"\n }\n ]\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got 1 fields from table hERWDMS\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1402
},
{
"service": "aitable",
"command": "+find-record",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +find-record --base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table hERWDMS --query '测试' --yes --format json",
"args": [
"aitable",
"+find-record",
"--base",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table",
"hERWDMS",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"nextCursor\": \"oXh7WgGooe\",\n \"records\": [\n {\n \"cells\": {\n \"01ZM8y7\": \"N0QWY69QN4\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4048.HEIC.JPG\",\n \"resourceId\": \"479e4321-3d6a-42f0-91de-583c6ea41d9f\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5268e3736ebad509e7fcef9dcd108f495a911ef939606b63dc103944eb9062bae7f23148f19bc87f4\",\n \"size\": 1753393,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"8LVOssPz6Q\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"CDQD7CN97V\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4054.HEIC.JPG\",\n \"resourceId\": \"7d68adf9-ec88-4192-8728-5de240f17fc8\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d57cd5cd33059ea9b3d2766775dd1ba8096b8c5a9cb3defd6f5321c276624c51f602fba57aca34bc6d\",\n \"size\": 1801325,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\\nAI营销借用\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"133206\"\n }\n ]\n },\n \"recordId\": \"AjOk0hu1pe\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"RY7LCW719Q\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4213.HEIC.JPG\",\n \"resourceId\": \"0022f2cc-bd93-49f0-8039-04ac2909dd32\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d59a2750fefa807e0cfc41158e98407c864f1745537f406fcb0e02c76b1696b84f8bac5e1298eba711\",\n \"size\": 1763574,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"DUDacJdQ2X\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"D54X6C7WH6\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"image.png\",\n \"resourceId\": \"e7dea77f-0f65-4266-a3fd-e401b80a9582\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5d45d39275c65656906af57b60be7002feaf431efea862523554a56545a2e6ac55d17ee7f4c9382c9\",\n \"size\": 9795238,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ],\n \"ty1M3J4\": {\n \"markdown\": \"已归还\\n\"\n }\n },\n \"recordId\": \"Dt8KZX7Nt2\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"MN7V04VVD4\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4044.HEIC.JPG\",\n \"resourceId\": \"82903e20-99ca-4497-8596-64b8a9511347\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5585fe6169387aa3767c7e8d94f1e6b2bdcb910b90a359120b13c8f9d1a59101157155a75536e1183\",\n \"size\": 1965625,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"FA0TZMthqI\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"CYY9PQRXJ5\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4216.HEIC.JPG\",\n \"resourceId\": \"3dfd0bec-a06a-4580-a9a2-b8ae450df2a4\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d52f04469c6bb09596caffbbac393c775d8db27175749aef18fb6444ef163ea9d17fb0a232eda6495f\",\n \"size\": 2290335,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"IyGa4g01n1\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"K30F574N0W\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4071.HEIC.JPG\",\n \"resourceId\": \"8f970cbb-9e4d-4abb-bc2e-bae127a6231a\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5988e57da667e94ed89271196611e117503f232ffda40509efa8b2836f86122df894b0282d28e9bd0\",\n \"size\": 1883600,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"UJwTYA3uNw\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"Y7CXVJ9XWD\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4072.HEIC.JPG\",\n \"resourceId\": \"68b711bd-e972-445a-be79-bf4954b52000\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d581be5bba89215dfa8bf27c7a750a77959fc36654d351427344ca8cee273282f51f530a2b9381f2f5\",\n \"size\": 1856927,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"Uygc2paXj3\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"GMQW2JLWVY\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4214.HEIC.JPG\",\n \"resourceId\": \"ca4deb91-17d6-43e7-9812-72101643deb9\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d57860f934d7f4ae4fd1379962b8f251e8357d71880d1389e2b613f13514ac39fcfcb2a6a1fcb68a65\",\n \"size\": 1640058,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"ewj09NwU1z\",\n \"name\": \"AI招聘\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"429676\"\n }\n ]\n },\n \"recordId\": \"Xjj4e7GgG8\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"Y0V7Y2N2YD\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4074.HEIC.JPG\",\n \"resourceId\": \"5b8d3006-280e-41af-a4b0-3320e6a5d596\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5f3f03272cd3d6f49910031a2e873f763b035f6f21d03abba7ab038475a5ab532635226d96df6a64e\",\n \"size\": 1964512,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"Y056lsOG61\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"P24GFQN7YT\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4033.HEIC.JPG\",\n \"resourceId\": \"38656067-b7b7-45fd-8bea-64f4c89dc4f7\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d50c8666278c495a44ef70265cd8adb7f504b841c8f61607d92f11852026cd92eff88db6bf5a5d630c\",\n \"size\": 2028953,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"YVaPzcuGBa\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"N7Q33L77WR\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"image.png\",\n \"resourceId\": \"4abf67c0-ad03-4a81-a3db-3794d15453e9\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d53aa03710ddc5973e4df2b4d6c72f04177dd7b5a30206f588777548a9d514bbd2a1bdc9489688a5fb\",\n \"size\": 9870487,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"hXTMF9el7v\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"HFk9Y9TYQD\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4043.HEIC.JPG\",\n \"resourceId\": \"d6786a91-bca7-4c09-8225-9503cb66610f\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5fe8628219f060fbe50542a5616689036033b038792e8d5a77e12f7fc37630879073a357b1dacf1ae\",\n \"size\": 2110186,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试\",\n \"6B78kgr\": \"2\",\n \"ARoUEWW\": {\n \"id\": \"P6GYJKc3t0\",\n \"name\": \"未付费\"\n },\n \"Str3hFF\": {\n \"id\": \"m4Y2qZ07Yk\",\n \"name\": \"领取两台\"\n },\n \"ZoCsF67\": \"2026-02-09T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"lpH5zwRv5D\",\n \"name\": \"AI差旅\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"151705\"\n }\n ]\n },\n \"recordId\": \"kk7eQt1kJB\"\n },\n {\n \"cells\": {\n \"01ZM8y7\": \"TX6377KGFH\",\n \"2hfk5Hd\": [\n {\n \"filename\": \"IMG_4064.HEIC.JPG\",\n \"resourceId\": \"850e1a7f-aa0a-4ba8-9b54-5bc9c66a5a63\",\n \"resourceUrl\": \"/core/api/resources/img/5eecdaf48460cde5e74cc918372d9be934282a6fcde347f775b8339e1c4c24834322b4c2cdd63b4d6b58639871ed7e1ba156a98577f418d5716c6100d05323cbd2151a4b9cf8174b09cf0ac1af356178c4572bfa55a8c065f499293f0f9b00e2\",\n \"size\": 1963615,\n \"type\": \"image\",\n \"url\": \"[REDACTED_OSS_URL]\"\n }\n ],\n \"47bTcjO\": \"内部测试--恒飞\",\n \"ARoUEWW\": {\n \"id\": \"Zw0fFCNl8e\",\n \"name\": \"付费\"\n },\n \"ZoCsF67\": \"2026-01-23T00:00:00+08:00\",\n \"j1Zwe1c\": [\n {\n \"id\": \"s9UKjSzdLg\",\n \"name\": \"业务方自主\"\n }\n ],\n \"kFwb8br\": {\n \"id\": \"1ZiuS5Wlgz\",\n \"name\": \"内部部署\"\n },\n \"rjwzzIu\": [\n {\n \"id\": \"ewj09NwU1z\",\n \"name\": \"AI招聘\"\n }\n ],\n \"t9n9SDE\": [\n {\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"userId\": \"103262\"\n }\n ],\n \"ty1M3J4\": {\n \"markdown\": \"目前看设备离线\\n\"\n }\n },\n \"recordId\": \"oXh7WgGooe\"\n }\n ]\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Successfully queried 14 record(s) from table hERWDMS in base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2849
},
{
"service": "aitable",
"command": "+form-field-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +form-field-list --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --view-id lmeV1cb --yes --format json",
"args": [
"aitable",
"+form-field-list",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--view-id",
"lmeV1cb",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"fields\": [\n {\n \"fieldId\": \"t9n9SDE\",\n \"hidden\": false,\n \"name\": \"领取人\",\n \"required\": true,\n \"type\": \"user\"\n },\n {\n \"fieldId\": \"j1Zwe1c\",\n \"hidden\": false,\n \"name\": \"验证情况\",\n \"required\": true,\n \"type\": \"multipleSelect\"\n },\n {\n \"fieldId\": \"2hfk5Hd\",\n \"hidden\": false,\n \"name\": \"商品图片\",\n \"required\": false,\n \"type\": \"file\"\n },\n {\n \"fieldId\": \"ZoCsF67\",\n \"hidden\": false,\n \"name\": \"领取时间\",\n \"required\": true,\n \"type\": \"date\"\n },\n {\n \"fieldId\": \"47bTcjO\",\n \"hidden\": false,\n \"name\": \"交付客户\",\n \"required\": true,\n \"type\": \"text\"\n },\n {\n \"description\": \"填写:客户业务介绍,老板是谁,实际使用部门,使用人数,主要解决客户什么问题,客户原声\",\n \"fieldId\": \"3p4hbFh\",\n \"hidden\": false,\n \"name\": \"客户背景\",\n \"required\": true,\n \"type\": \"richText\"\n }\n ],\n \"tableId\": \"hERWDMS\",\n \"viewId\": \"lmeV1cb\"\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Found 6 field(s) in form view lmeV1cb\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1139
},
{
"service": "aitable",
"command": "+form-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +form-list --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --yes --format json",
"args": [
"aitable",
"+form-list",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 2,\n \"forms\": [\n {\n \"viewId\": \"lmeV1cb\",\n \"viewName\": \"设备登记\"\n },\n {\n \"viewId\": \"HaFV1LW\",\n \"viewName\": \"客户使用情况\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1003
},
{
"service": "aitable",
"command": "+form-share-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +form-share-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --view-id lmeV1cb --yes --format json",
"args": [
"aitable",
"+form-share-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--view-id",
"lmeV1cb",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"anonymousSubmit\": false,\n \"authTypeCode\": 0,\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"enabled\": true,\n \"formName\": \"Mac Mini领取信息登记\",\n \"loadLastSubmit\": true,\n \"punished\": false,\n \"replyNotice\": false,\n \"shareFormUuid\": \"v01ZWGl05mvrY0PMn34_hERWDMS_lmeV1cb\",\n \"status\": 1,\n \"submitTimesUserLimit\": 0,\n \"tableId\": \"hERWDMS\",\n \"viewId\": \"lmeV1cb\"\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Fetched share form config for view lmeV1cb: enabled=true\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1067
},
{
"service": "aitable",
"command": "+list-tables",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +list-tables --base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --yes --format json",
"args": [
"aitable",
"+list-tables",
"--base",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"tables\": [\n {\n \"tableId\": \"hERWDMS\",\n \"tableName\": \"Mac Mini\"\n },\n {\n \"tableId\": \"k8d898q\",\n \"tableName\": \"手机\"\n },\n {\n \"tableId\": \"zyLRwwa\",\n \"tableName\": \"SIM卡\"\n },\n {\n \"tableId\": \"L53jNZz\",\n \"tableName\": \"机箱\"\n },\n {\n \"tableId\": \"zTiHNDL\",\n \"tableName\": \"磁吸片\"\n },\n {\n \"tableId\": \"anMdihs\",\n \"tableName\": \"手机线\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1452
},
{
"service": "aitable",
"command": "+record-history-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +record-history-list --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --record-id 1015oH3OXy --offset 1 --limit 10 --yes --format json",
"args": [
"aitable",
"+record-history-list",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--record-id",
"1015oH3OXy",
"--offset",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"histories\": [\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"47bTcjO\\\":{\\\"dataType\\\":\\\"STRING\\\",\\\"value\\\":\\\"山东梅格彤\\\"}}\",\n \"oldValue\": \"{\\\"47bTcjO\\\":{\\\"dataType\\\":\\\"STRING\\\",\\\"value\\\":\\\"内部测试\\\"}}\",\n \"operateTime\": 1772700326253,\n \"type\": \"row\",\n \"version\": 2455\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"ARoUEWW\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"Zw0fFCNl8e\\\",\\\"sequence\\\":\\\"Zw0fFCNl8e\\\",\\\"data\\\":\\\"Zw0fFCNl8e\\\",\\\"filterFactor\\\":\\\"Zw0fFCNl8e\\\"}}}\",\n \"oldValue\": \"{\\\"ARoUEWW\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"sequence\\\":\\\"P6GYJKc3t0\\\",\\\"identifier\\\":\\\"P6GYJKc3t0\\\",\\\"data\\\":\\\"P6GYJKc3t0\\\",\\\"filterFactor\\\":\\\"P6GYJKc3t0\\\"}}}\",\n \"operateTime\": 1772700311648,\n \"type\": \"row\",\n \"version\": 2454\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"kFwb8br\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"uvZmbeb5RH\\\",\\\"sequence\\\":\\\"uvZmbeb5RH\\\",\\\"data\\\":\\\"uvZmbeb5RH\\\",\\\"filterFactor\\\":\\\"uvZmbeb5RH\\\"}}}\",\n \"oldValue\": \"{}\",\n \"operateTime\": 1772700308342,\n \"type\": \"row\",\n \"version\": 2453\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{}\",\n \"oldValue\": \"{\\\"kFwb8br\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"sequence\\\":\\\"1ZiuS5Wlgz\\\",\\\"identifier\\\":\\\"1ZiuS5Wlgz\\\",\\\"data\\\":\\\"1ZiuS5Wlgz\\\",\\\"filterFactor\\\":\\\"1ZiuS5Wlgz\\\"}}}\",\n \"operateTime\": 1772700305961,\n \"type\": \"row\",\n \"version\": 2452\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{}\",\n \"oldValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"sequence\\\":\\\"给不挠了\\\",\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"给不挠了\\\\\\\"]]]]\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"给不挠了\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"给不挠了\\\"]}}}\",\n \"operateTime\": 1772700303480,\n \"type\": \"row\",\n \"version\": 2451\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"给不挠了\\\\\\\"]]]]\\\",\\\"sequence\\\":\\\"给不挠了\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"给不挠了\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"给不挠了\\\"]}}}\",\n \"oldValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"sequence\\\":\\\"闲置\\\",\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"闲置\\\\\\\"]]]]\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"闲置\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"闲置\\\"]}}}\",\n \"operateTime\": 1772003207333,\n \"type\": \"row\",\n \"version\": 2377\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"闲置\\\\\\\"]]]]\\\",\\\"sequence\\\":\\\"闲置\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"闲置\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"闲置\\\"]}}}\",\n \"oldValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"目前查是离线\\\\\\\"]]]]\\\",\\\"sequence\\\":\\\"目前查是离线\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"目前查是离线\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"目前查是离线\\\"]}}}\",\n \"operateTime\": 1770990377587,\n \"type\": \"row\",\n \"version\": 2241\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"kFwb8br\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"1ZiuS5Wlgz\\\",\\\"sequence\\\":\\\"1ZiuS5Wlgz\\\",\\\"data\\\":\\\"1ZiuS5Wlgz\\\",\\\"filterFactor\\\":\\\"1ZiuS5Wlgz\\\"}}}\",\n \"oldValue\": \"{}\",\n \"operateTime\": 1770875502420,\n \"type\": \"row\",\n \"version\": 2162\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{}\",\n \"oldValue\": \"{\\\"kFwb8br\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"8G9fnUmdKY\\\",\\\"sequence\\\":\\\"8G9fnUmdKY\\\",\\\"data\\\":\\\"8G9fnUmdKY\\\",\\\"filterFactor\\\":\\\"8G9fnUmdKY\\\"}}}\",\n \"operateTime\": 1770875501255,\n \"type\": \"row\",\n \"version\": 2161\n },\n {\n \"action\": \"updateRecords\",\n \"newValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"目前查是离线\\\\\\\"]]]]\\\",\\\"sequence\\\":\\\"目前查是离线\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"目前查是离线\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"目前查是离线\\\"]}}}\",\n \"oldValue\": \"{\\\"ty1M3J4\\\":{\\\"dataType\\\":\\\"OBJECT\\\",\\\"value\\\":{\\\"sequence\\\":\\\"\\\",\\\"identifier\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"\\\\\\\"]]]]\\\",\\\"data\\\":\\\"[\\\\\\\"root\\\\\\\",{},[\\\\\\\"p\\\\\\\",{},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"text\\\\\\\"},[\\\\\\\"span\\\\\\\",{\\\\\\\"data-type\\\\\\\":\\\\\\\"leaf\\\\\\\"},\\\\\\\"\\\\\\\"]]]]\\\",\\\"filterFactor\\\":[\\\"\\\"]}}}\",\n \"operateTime\": 1770868083188,\n \"type\": \"row\",\n \"version\": 2139\n }\n ]\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got 10 history record(s) for record 1015oH3OXy\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1156
},
{
"service": "aitable",
"command": "+record-query",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +record-query --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --record-ids 1015oH3OXy --field-ids 01ZM8y7 --filters '{}' --sort '[]' --query '测试' --limit 10 --cursor 0 --yes --format json",
"args": [
"aitable",
"+record-query",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--record-ids",
"1015oH3OXy",
"--field-ids",
"01ZM8y7",
"--filters",
"{}",
"--sort",
"[]",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {},\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Successfully queried 0 record(s) from table hERWDMS in base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1241
},
{
"service": "aitable",
"command": "+record-query-empty",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +record-query-empty --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --limit 10 --cursor 0 --yes --format json",
"args": [
"aitable",
"+record-query-empty",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"nextCursor\": \"4lLnbs69uY\",\n \"records\": []\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Scanned 10 record(s) from table hERWDMS in base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk, 0 of them are empty.\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2057
},
{
"service": "aitable",
"command": "+record-share-links",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +record-share-links --base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table hERWDMS --record-ids 1015oH3OXy --view-id qvGDAH2 --yes --format json",
"args": [
"aitable",
"+record-share-links",
"--base",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table",
"hERWDMS",
"--record-ids",
"1015oH3OXy",
"--view-id",
"qvGDAH2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"base\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"batches\": 1,\n \"items\": [\n {\n \"recordId\": \"1015oH3OXy\",\n \"shareUrl\": \"https://alidocs.dingtalk.com/notable/record?dentryUuid=gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk&sheetId=hERWDMS&rowId=1015oH3OXy&viewId=qvGDAH2\"\n }\n ],\n \"table\": \"hERWDMS\",\n \"total\": 1\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1249
},
{
"service": "aitable",
"command": "+record-share-url",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +record-share-url --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --record-ids 1015oH3OXy --view-id qvGDAH2 --yes --format json",
"args": [
"aitable",
"+record-share-url",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--record-ids",
"1015oH3OXy",
"--view-id",
"qvGDAH2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"items\": [\n {\n \"recordId\": \"1015oH3OXy\",\n \"shareUrl\": \"https://alidocs.dingtalk.com/notable/record?dentryUuid=gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\\u0026sheetId=hERWDMS\\u0026rowId=1015oH3OXy\\u0026viewId=qvGDAH2\"\n }\n ]\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got share urls for 1 record(s)\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1130
},
{
"service": "aitable",
"command": "+resolve-base",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +resolve-base --name 'Real共创版设备去向登记' --yes --format json",
"args": [
"aitable",
"+resolve-base",
"--name",
"Real共创版设备去向登记",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"name\": \"Real共创版设备去向登记\",\n \"resolved\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1228
},
{
"service": "aitable",
"command": "+resolve-table",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +resolve-table --base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --name 'Mac Mini' --yes --format json",
"args": [
"aitable",
"+resolve-table",
"--base",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--name",
"Mac Mini",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"base\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"name\": \"Mac Mini\",\n \"resolved\": true,\n \"tableId\": \"hERWDMS\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1425
},
{
"service": "aitable",
"command": "+role-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +role-list --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --yes --format json",
"args": [
"aitable",
"+role-list",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"defaultRole\": {\n \"mode\": 2\n },\n \"enabled\": true,\n \"roles\": [\n {\n \"name\": \"所有者\",\n \"roleId\": \"owner\",\n \"roleType\": \"5000\",\n \"subRoles\": [],\n \"system\": true\n },\n {\n \"name\": \"管理员\",\n \"roleId\": \"manager\",\n \"roleType\": \"4000\",\n \"subRoles\": [],\n \"system\": true\n },\n {\n \"name\": \"可查看角色\",\n \"roleId\": \"10181777133\",\n \"roleType\": \"custom\",\n \"subRoles\": [\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 255\n },\n \"display\": {\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,该目标可见但不可编辑,无细粒度 actions/rows/cells 配置\",\n \"targetTypeLabel\": \"仪表盘\"\n },\n \"targetId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"targetType\": \"dashboard\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"hERWDMS\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"k8d898q\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"zyLRwwa\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"L53jNZz\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"zTiHNDL\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"anMdihs\",\n \"targetType\": \"sheet\"\n }\n ],\n \"system\": false\n },\n {\n \"name\": \"notable_biz_advanced_permission_role_editor\",\n \"roleId\": \"10181777134\",\n \"roleType\": \"system_editor\",\n \"subRoles\": [\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 255\n },\n \"display\": {\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,该目标可见但不可编辑,无细粒度 actions/rows/cells 配置\",\n \"targetTypeLabel\": \"仪表盘\"\n },\n \"targetId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"targetType\": \"dashboard\"\n },\n {\n \"authLevel\": \"manage\",\n \"display\": {\n \"authLevelLabel\": \"可管理\",\n \"permissionScopeNote\": \"可管理级别下,数据表拥有全部操作权限,actions/rows/cells 仅作为配置回显,不参与权限判断\",\n \"targetTypeLabel\": \"数据表\"\n },\n \"targetId\": \"hERWDMS\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"manage\",\n \"display\": {\n \"authLevelLabel\": \"可管理\",\n \"permissionScopeNote\": \"可管理级别下,数据表拥有全部操作权限,actions/rows/cells 仅作为配置回显,不参与权限判断\",\n \"targetTypeLabel\": \"数据表\"\n },\n \"targetId\": \"k8d898q\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"manage\",\n \"display\": {\n \"authLevelLabel\": \"可管理\",\n \"permissionScopeNote\": \"可管理级别下,数据表拥有全部操作权限,actions/rows/cells 仅作为配置回显,不参与权限判断\",\n \"targetTypeLabel\": \"数据表\"\n },\n \"targetId\": \"zyLRwwa\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"manage\",\n \"display\": {\n \"authLevelLabel\": \"可管理\",\n \"permissionScopeNote\": \"可管理级别下,数据表拥有全部操作权限,actions/rows/cells 仅作为配置回显,不参与权限判断\",\n \"targetTypeLabel\": \"数据表\"\n },\n \"targetId\": \"L53jNZz\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"manage\",\n \"display\": {\n \"authLevelLabel\": \"可管理\",\n \"permissionScopeNote\": \"可管理级别下,数据表拥有全部操作权限,actions/rows/cells 仅作为配置回显,不参与权限判断\",\n \"targetTypeLabel\": \"数据表\"\n },\n \"targetId\": \"zTiHNDL\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"manage\",\n \"display\": {\n \"authLevelLabel\": \"可管理\",\n \"permissionScopeNote\": \"可管理级别下,数据表拥有全部操作权限,actions/rows/cells 仅作为配置回显,不参与权限判断\",\n \"targetTypeLabel\": \"数据表\"\n },\n \"targetId\": \"anMdihs\",\n \"targetType\": \"sheet\"\n }\n ],\n \"system\": true\n },\n {\n \"name\": \"notable_biz_advanced_permission_role_reader\",\n \"roleId\": \"10181777135\",\n \"roleType\": \"system_reader\",\n \"subRoles\": [\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 255\n },\n \"display\": {\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,该目标可见但不可编辑,无细粒度 actions/rows/cells 配置\",\n \"targetTypeLabel\": \"仪表盘\"\n },\n \"targetId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"targetType\": \"dashboard\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"hERWDMS\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"k8d898q\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"zyLRwwa\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"L53jNZz\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"zTiHNDL\",\n \"targetType\": \"sheet\"\n },\n {\n \"authLevel\": \"read\",\n \"config\": {\n \"actions\": 268435455\n },\n \"display\": {\n \"actionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ],\n \"actionsNote\": \"actions 位图取哨兵值 0x0FFFFFFF,在仅查看级别下表示视图配置项可见,不代表可对视图执行操作\",\n \"authLevelLabel\": \"仅查看\",\n \"permissionScopeNote\": \"仅查看级别下,actions/rows/cells 描述的是可见数据范围,不代表实际可执行的操作\",\n \"targetTypeLabel\": \"数据表\",\n \"viewActionsLabels\": [\n \"新增视图\",\n \"删除视图\",\n \"修改视图\"\n ]\n },\n \"targetId\": \"anMdihs\",\n \"targetType\": \"sheet\"\n }\n ],\n \"system\": true\n }\n ]\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Listed 5 roles for base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1483
},
{
"service": "aitable",
"command": "+section-list-empty",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +section-list-empty --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --yes --format json",
"args": [
"aitable",
"+section-list-empty",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"items\": [],\n \"total\": 0\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Found 0 empty sections in base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1202
},
{
"service": "aitable",
"command": "+section-list-nodes",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +section-list-nodes --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --yes --format json",
"args": [
"aitable",
"+section-list-nodes",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"items\": [\n {\n \"nodeId\": \"L53jNZz\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"zTiHNDL\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"TG566ix\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"hERWDMS-HaFV1LW\",\n \"nodeType\": \"form_view\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"KY9tlWg5NEHgfs8WT6IO2\",\n \"nodeType\": \"dashboard\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"TWB385A\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"hERWDMS-lmeV1cb\",\n \"nodeType\": \"form_view\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"anMdihs\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"qid57iq\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"k8d898q-mkGX58x\",\n \"nodeType\": \"form_view\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"k8d898q\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"zyLRwwa\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n },\n {\n \"nodeId\": \"hERWDMS\",\n \"nodeType\": \"sheet\",\n \"parentSectionId\": \"\"\n }\n ],\n \"total\": 13\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Found 13 nsheet nodes in base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 969
},
{
"service": "aitable",
"command": "+table-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +table-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-ids x --yes --format json",
"args": [
"aitable",
"+table-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-ids",
"x",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"tables\": []\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Got 0 tables from base gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk. Requested tableIds not returned: x. URL rules: AI 表格数据表访问地址: https://docs.dingtalk.com/i/nodes/{baseId}?iframeQuery=sheetId%3D{tableId}; AI 表格视图访问地址: https://docs.dingtalk.com/i/nodes/{baseId}?iframeQuery=sheetId%3D{tableId}%26viewId%3D{viewId}. User-facing guidance: 面向用户时要以人为本、友好直观,优先展示 **实体名称**、可点击链接和必要上下文,尽量隐藏 `baseId`、`tableId`、`viewId`、`dashboardId`、`documentId` 等技术细节;除非用户明确索要或排障必须,否则不要直接呈现这些 ID。\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1301
},
{
"service": "aitable",
"command": "+template-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +template-search --query '测试' --limit 10 --cursor 0 --yes --format json",
"args": [
"aitable",
"+template-search",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 2,\n \"templates\": [\n {\n \"templateId\": \"513\",\n \"templateName\": \"随堂小测试\"\n },\n {\n \"templateId\": \"425\",\n \"templateName\": \"随堂小测试\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 953
},
{
"service": "aitable",
"command": "+view-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +view-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --view-ids qvGDAH2 --yes --format json",
"args": [
"aitable",
"+view-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--view-ids",
"qvGDAH2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 1,\n \"views\": [\n {\n \"viewId\": \"qvGDAH2\",\n \"viewName\": \"Mac Mini\",\n \"viewType\": \"Grid\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1137
},
{
"service": "aitable",
"command": "+view-get-frozen-cols",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +view-get-frozen-cols --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --view-id qvGDAH2 --yes --format json",
"args": [
"aitable",
"+view-get-frozen-cols",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--view-id",
"qvGDAH2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"count\": 1,\n \"tableId\": \"hERWDMS\",\n \"viewId\": \"qvGDAH2\"\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"Frozen column count of view 'Mac Mini' is 1\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1097
},
{
"service": "aitable",
"command": "+view-get-lock",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +view-get-lock --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --view-id qvGDAH2 --yes --format json",
"args": [
"aitable",
"+view-get-lock",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--view-id",
"qvGDAH2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"locked\": false,\n \"tableId\": \"hERWDMS\",\n \"viewId\": \"qvGDAH2\"\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"View 'Mac Mini' is unlocked\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1063
},
{
"service": "aitable",
"command": "+view-get-row-height",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test aitable +view-get-row-height --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --view-id qvGDAH2 --yes --format json",
"args": [
"aitable",
"+view-get-row-height",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--view-id",
"qvGDAH2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"data\": {\n \"baseId\": \"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk\",\n \"tableId\": \"hERWDMS\",\n \"viewId\": \"qvGDAH2\"\n },\n \"error\": {},\n \"meta\": {},\n \"status\": \"success\",\n \"success\": true,\n \"summary\": \"View 'Mac Mini' has no explicit cell height\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1284
},
{
"service": "attendance",
"command": "+check-record",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +check-record --users 202397 --start 2026-07-14 --end 2026-07-15 --yes --format json",
"args": [
"attendance",
"+check-record",
"--users",
"202397",
"--start",
"2026-07-14",
"--end",
"2026-07-15",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 998
},
{
"service": "attendance",
"command": "+check-result",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +check-result --users 202397 --start 2026-07-14 --end 2026-07-15 --offset 1 --limit 10 --yes --format json",
"args": [
"attendance",
"+check-result",
"--users",
"202397",
"--start",
"2026-07-14",
"--end",
"2026-07-15",
"--offset",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1134
},
{
"service": "attendance",
"command": "+get-adjustment-rule",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-adjustment-rule --adjustment-id 1 --yes --format json",
"args": [
"attendance",
"+get-adjustment-rule",
"--adjustment-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"success\": true,\n \"有效期类型\": \"工作日\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 950
},
{
"service": "attendance",
"command": "+get-approve-template",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-approve-template --type leave --yes --format json",
"args": [
"attendance",
"+get-approve-template",
"--type",
"leave",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [\n {\n \"approveType\": \"LEAVE\",\n \"formName\": \"请假\",\n \"processCode\": \"PROC-940F2B1F-845D-4F39-A92E-FA5F45D1BF87\",\n \"submitUrl\": \"dingtalk://dingtalkclient/action/openapp?app_id=-4\\u0026container_type=work_platform\\u0026corpid=ding8196cd9a2b2405da24f2f5cc6abecb85\\u0026ddtab=true\\u0026redirect_type=jump\\u0026redirect_url=https%3A%2F%2Faflow.dingtalk.com%2Fdingtalk%2Fmobile%2Fhomepage.htm%3FappUuid%3Dding8196cd9a2b2405da24f2f5cc6abecb85%26backcontrol%3Dfalse%26corpid%3Dding8196cd9a2b2405da24f2f5cc6abecb85%26dd_progress%3Dfalse%26dd_share%3Dfalse%26ddtab%3Dtrue%26showmenu%3Dfalse%23%2Fcustom%3Fpcredirect%3Dself%26processCode%3DPROC-940F2B1F-845D-4F39-A92E-FA5F45D1BF87\"\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1080
},
{
"service": "attendance",
"command": "+get-checkin-record",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-checkin-record --operator-corp-id x --operator-staff-id 202397 --staff-ids 202397 --start '2026-07-15 10:00:00' --end '2026-07-15 16:00:00' --yes --format json",
"args": [
"attendance",
"+get-checkin-record",
"--operator-corp-id",
"x",
"--operator-staff-id",
"202397",
"--staff-ids",
"202397",
"--start",
"2026-07-15 10:00:00",
"--end",
"2026-07-15 16:00:00",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"result\": {\n \"list\": []\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1116
},
{
"service": "attendance",
"command": "+get-leave-records",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-leave-records --user 202397 --leave-code 731ed089-62ff-4734-a6c7-3c8fcc8294fc --start 2026-07-14 --end 2026-07-15 --yes --format json",
"args": [
"attendance",
"+get-leave-records",
"--user",
"202397",
"--leave-code",
"731ed089-62ff-4734-a6c7-3c8fcc8294fc",
"--start",
"2026-07-14",
"--end",
"2026-07-15",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1009
},
{
"service": "attendance",
"command": "+get-overtime-rule",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-overtime-rule --overtime-id 1 --yes --format json",
"args": [
"attendance",
"+get-overtime-rule",
"--overtime-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [\n {\n \"advanceSettingDays\": [],\n \"content\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"durationSettings\": {\n \"holiday\": {\n \"calcType\": 1,\n \"durationType\": 1,\n \"holidayPlanOvertimeRedress\": null,\n \"holidayPlanOvertimeRedressBy\": null,\n \"holidayPlanVacationRate\": null,\n \"overtimeRedress\": true,\n \"overtimeRedressBy\": \"vacation\",\n \"roundType\": null,\n \"settings\": {},\n \"skipTime\": \"none\",\n \"skipTimeByDurations\": [],\n \"skipTimeByFrames\": [],\n \"stepType\": null,\n \"stepValue\": null,\n \"vacationRate\": \"1.0\",\n \"warningSettings\": [],\n \"workMinutesPerDay\": null\n },\n \"restDay\": {\n \"calcType\": 1,\n \"durationType\": 1,\n \"holidayPlanOvertimeRedress\": null,\n \"holidayPlanOvertimeRedressBy\": null,\n \"holidayPlanVacationRate\": null,\n \"overtimeRedress\": true,\n \"overtimeRedressBy\": \"vacation\",\n \"roundType\": null,\n \"settings\": {},\n \"skipTime\": \"none\",\n \"skipTimeByDurations\": [],\n \"skipTimeByFrames\": [],\n \"stepType\": null,\n \"stepValue\": null,\n \"vacationRate\": \"1.0\",\n \"warningSettings\": [],\n \"workMinutesPerDay\": null\n },\n \"workDay\": {\n \"calcType\": 1,\n \"durationType\": 1,\n \"holidayPlanOvertimeRedress\": null,\n \"holidayPlanOvertimeRedressBy\": null,\n \"holidayPlanVacationRate\": null,\n \"overtimeRedress\": true,\n \"overtimeRedressBy\": \"vacation\",\n \"roundType\": null,\n \"settings\": {\n \"calcTypeBetweenDutyWorktime\": null,\n \"durationTypeBetweenDutyWorktime\": null,\n \"dutyWorktimeLieuTypeVacationCode\": null,\n \"dutyWorktimeOvertimeRedress\": null,\n \"dutyWorktimeOvertimeRedressBy\": null,\n \"dutyWorktimeVacationRate\": null,\n \"enableAfterOffDuty\": true,\n \"enableBeforeOnDuty\": true,\n \"enableBetweenDuty\": true,\n \"enableBetweenDutyWorktime\": null,\n \"startTime\": null,\n \"timeUnit\": null,\n \"timeUnitAfterOffDuty\": 30,\n \"timeUnitBeforeOnDuty\": 30,\n \"timeUnitBetweenDuty\": 0,\n \"timeUnitBetweenDutyWorktime\": null\n },\n \"skipTime\": \"none\",\n \"skipTimeByDurations\": [],\n \"skipTimeByFrames\": [],\n \"stepType\": null,\n \"stepValue\": null,\n \"vacationRate\": \"1.0\",\n \"warningSettings\": [],\n \"workMinutesPerDay\": null\n }\n },\n \"groupIdAndNames\": [],\n \"id\": 941615052,\n \"isDefault\": null,\n \"name\": \"以审批时间计算加班\",\n \"overtimeCheckSetting\": {},\n \"overtimeDivisions\": [],\n \"owner\": null,\n \"ownerList\": [],\n \"roundType\": \"floor\",\n \"scopes\": null,\n \"settingId\": 941615052,\n \"stepType\": 0,\n \"stepValue\": \"1.0\",\n \"warningSettings\": [],\n \"workMinutesPerDay\": 480\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 961
},
{
"service": "attendance",
"command": "+get-schedule",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-schedule --users 202397 --start 2026-07-14 --end 2026-07-15 --yes --format json",
"args": [
"attendance",
"+get-schedule",
"--users",
"202397",
"--start",
"2026-07-14",
"--end",
"2026-07-15",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 929
},
{
"service": "attendance",
"command": "+get-self-setting",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-self-setting --setting-scene checkRemind --user 202397 --yes --format json",
"args": [
"attendance",
"+get-self-setting",
"--setting-scene",
"checkRemind",
"--user",
"202397",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": {\n \"bossMonthReportType\": null,\n \"bossPushStartMin\": null,\n \"bossWeekReportType\": null,\n \"canUpdateOffDuty\": null,\n \"checkRemindSetting\": {},\n \"checkRemindUserOffDuty\": true,\n \"checkRemindUserOnDuty\": true,\n \"checkResultMsg\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"enableOffdutyCheckRemindOfPc\": true,\n \"enableOndutyCheckRemindOfPc\": true,\n \"fastCheckLateNeedConfirm\": null,\n \"lackRemindUser\": null,\n \"lackSendTodoMsg\": null,\n \"offdutyCheckType\": null,\n \"offdutyRemindEndMin\": null,\n \"offdutyRemindStartMin\": null,\n \"ondutyCheckType\": null,\n \"ondutyRemindEndMin\": null,\n \"ondutyRemindStartMin\": null,\n \"personDailyReportSwitch\": null,\n \"personMonthReportType\": null,\n \"personWeekReportType\": null,\n \"userId\": \"202397\",\n \"vibrationRemindSwitch\": null,\n \"voiceRemindSwitch\": null\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 989
},
{
"service": "attendance",
"command": "+get-summary",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +get-summary --user 202397 --date 2026-07-15 --stats-type week --yes --format json",
"args": [
"attendance",
"+get-summary",
"--user",
"202397",
"--date",
"2026-07-15",
"--stats-type",
"week",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"errorCode\": \"0\",\n \"errorMessage\": \"success\",\n \"result\": {\n \"items\": [\n {\n \"name\": \"平均工时\",\n \"remark\": \"0小时\",\n \"unit\": \"小时\"\n },\n {\n \"name\": \"出勤天数\",\n \"remark\": \"0天\",\n \"unit\": null\n },\n {\n \"name\": \"出勤班次\",\n \"remark\": \"0个\",\n \"unit\": null\n },\n {\n \"name\": \"休息天数\",\n \"remark\": \"0天\",\n \"unit\": null\n },\n {\n \"name\": \"迟到\",\n \"remark\": \"0次\",\n \"unit\": \"次\"\n },\n {\n \"name\": \"早退\",\n \"remark\": \"0次\",\n \"unit\": \"次\"\n },\n {\n \"name\": \"缺卡\",\n \"remark\": \"0次\",\n \"unit\": \"次\"\n },\n {\n \"name\": \"旷工\",\n \"remark\": \"0天\",\n \"unit\": null\n },\n {\n \"name\": \"外勤\",\n \"remark\": \"0次\",\n \"unit\": null\n },\n {\n \"name\": \"加班\",\n \"remark\": \"0小时\",\n \"unit\": null\n },\n {\n \"name\": \"补卡申请\",\n \"remark\": \"0次\",\n \"unit\": null\n }\n ]\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1315
},
{
"service": "attendance",
"command": "+list-approve",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +list-approve --users 202397 --types leave --start 2026-07-14 --end 2026-07-15 --yes --format json",
"args": [
"attendance",
"+list-approve",
"--users",
"202397",
"--types",
"leave",
"--start",
"2026-07-14",
"--end",
"2026-07-15",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1208
},
{
"service": "attendance",
"command": "+list-leave-types",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +list-leave-types --yes --format json",
"args": [
"attendance",
"+list-leave-types",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"result\": [\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"754f72b4-0476-4e7d-ae4c-c46486268c5c\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"事假\",\n \"leaveStatisticType\": \"freedom\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_hour\",\n \"leaveViewUnit\": \"hour\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"a49f333e-275b-489a-8ec7-2c2000b81f35\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"调休\",\n \"leaveStatisticType\": \"balance_cycle_freedom\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_hour\",\n \"leaveViewUnit\": \"hour\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"5c4380ea-6f9c-4955-bbe6-bc0d114e4676\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"病假\",\n \"leaveStatisticType\": \"freedom\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_hour\",\n \"leaveViewUnit\": \"hour\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"731ed089-62ff-4734-a6c7-3c8fcc8294fc\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"年假\",\n \"leaveStatisticType\": \"balance_cycle\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_day\",\n \"leaveViewUnit\": \"halfDay\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"8a551c65-d3e1-4671-9eaf-78dd4645b8c3\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"产假\",\n \"leaveStatisticType\": \"once_max\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_day\",\n \"leaveViewUnit\": \"day\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"904d3f51-1f73-4161-a50a-300d0009676d\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"陪产假\",\n \"leaveStatisticType\": \"once_max\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_day\",\n \"leaveViewUnit\": \"day\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"05e2ba99-1916-4be9-8166-54f6a652e3bc\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"婚假\",\n \"leaveStatisticType\": \"once_max\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_day\",\n \"leaveViewUnit\": \"day\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"b168cb41-fbca-4f28-8234-fc62e0b66a2b\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"例假\",\n \"leaveStatisticType\": \"once_max\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_day\",\n \"leaveViewUnit\": \"halfDay\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"9daf653b-b3dd-46ef-a2b0-dd160bbf08c4\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"丧假\",\n \"leaveStatisticType\": \"once_max\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_day\",\n \"leaveViewUnit\": \"day\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n },\n {\n \"allRecordCleanTime\": null,\n \"bizType\": null,\n \"corpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\",\n \"exsitFlag\": \"y\",\n \"gmtCreate\": 1650879712000,\n \"gmtModified\": 1650879712000,\n \"leaveBalanceRuleVO\": {},\n \"leaveCertificate\": {},\n \"leaveCode\": \"3730df36-c05c-45e7-bac1-26b2ba137a25\",\n \"leaveCycleStatisticInfoVO\": {},\n \"leaveHourCeil\": null,\n \"leaveName\": \"哺乳假\",\n \"leaveStatisticType\": \"freedom\",\n \"leaveStatus\": \"on\",\n \"leaveTimeCeil\": null,\n \"leaveTimeCeilMinUnit\": null,\n \"leaveUnit\": \"percent_hour\",\n \"leaveViewUnit\": \"hour\",\n \"maxLeaveTime\": null,\n \"minLeaveHour\": null,\n \"naturalDayLeave\": false,\n \"orderId\": null,\n \"paidLeave\": false,\n \"perHoursInDay\": 0,\n \"remindRuleVO\": {},\n \"source\": \"inner\",\n \"submitTimeRuleVO\": {},\n \"sysFlag\": \"n\",\n \"userId\": null,\n \"version\": \"1\",\n \"visibilityRules\": [],\n \"whenCanLeave\": \"entry\"\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1107
},
{
"service": "attendance",
"command": "+my-attendance",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +my-attendance --yes --format json",
"args": [
"attendance",
"+my-attendance",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1169
},
{
"service": "attendance",
"command": "+query-report-data",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +query-report-data --users 202397 --columns 1001 --start '2026-07-15 10:00:00' --end '2026-07-15 16:00:00' --yes --format json",
"args": [
"attendance",
"+query-report-data",
"--users",
"202397",
"--columns",
"1001",
"--start",
"2026-07-15 10:00:00",
"--end",
"2026-07-15 16:00:00",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 998
},
{
"service": "attendance",
"command": "+search-adjustment-rule",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +search-adjustment-rule --query '测试' --page 1 --limit 10 --yes --format json",
"args": [
"attendance",
"+search-adjustment-rule",
"--query",
"测试",
"--page",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"rules\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 985
},
{
"service": "attendance",
"command": "+search-class",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +search-class --query '测试' --filter-type ALL --page 1 --limit 10 --yes --format json",
"args": [
"attendance",
"+search-class",
"--query",
"测试",
"--filter-type",
"ALL",
"--page",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"classes\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1043
},
{
"service": "attendance",
"command": "+search-group",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +search-group --query '测试' --type FIXED --query-position --query-ble --page 1 --limit 10 --yes --format json",
"args": [
"attendance",
"+search-group",
"--query",
"测试",
"--type",
"FIXED",
"--query-position",
"--query-ble",
"--page",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"groups\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 939
},
{
"service": "attendance",
"command": "+search-overtime-rule",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +search-overtime-rule --query '测试' --page 1 --limit 10 --yes --format json",
"args": [
"attendance",
"+search-overtime-rule",
"--query",
"测试",
"--page",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"rules\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 997
},
{
"service": "attendance",
"command": "+this-month",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test attendance +this-month --yes --format json",
"args": [
"attendance",
"+this-month",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"code\": \"0\",\n \"message\": \"success\",\n \"result\": [],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1108
},
{
"service": "calendar",
"command": "+agenda",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +agenda --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --calendar-id primary --cursor '' --limit 10 --yes --format json",
"args": [
"calendar",
"+agenda",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--calendar-id",
"primary",
"--cursor",
"",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 1,\n \"events\": [\n {\n \"end\": {\n \"date\": null,\n \"dateTime\": \"2026-07-16T10:00:00+08:00\",\n \"timeZone\": \"Asia/Shanghai\"\n },\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784164500000\",\n \"location\": \"B310\",\n \"start\": {\n \"date\": null,\n \"dateTime\": \"2026-07-16T09:15:00+08:00\",\n \"timeZone\": \"Asia/Shanghai\"\n },\n \"status\": \"confirmed\",\n \"summary\": \"中控专属钉&AI项目早会\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2094
},
{
"service": "calendar",
"command": "+attendee-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +attendee-list --event THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784078100000 --calendar-id primary --yes --format json",
"args": [
"calendar",
"+attendee-list",
"--event",
"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784078100000",
"--calendar-id",
"primary",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"attendees\": [\n {\n \"displayName\": \"秦天\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"崇幻(主用钉)\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"恩澈主用钉\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"楠者\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"栩铭-主账号\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"思敏\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"念晨\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"杨淑平\",\n \"responseStatus\": \"declined\"\n },\n {\n \"displayName\": \"李伟韬\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"王琳\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"千启\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"粤腾\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"石涤\",\n \"responseStatus\": \"declined\"\n },\n {\n \"displayName\": \"陈叙\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"李畅(主用钉)\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"徐海儿\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"袁航\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王伟明\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"巫利华\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"张彪\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"舒畅\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王晓璇\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"孙茂林\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"尤福海\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"杨凯\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"杨二磊\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"姚俊杰\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"王鑫杰\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"毛金权\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王国红\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"刘刚\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王福超\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"张海蛟\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"方胜新\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"邵嘉铭\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"孙龙飞\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"刘琦\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"申展\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"李光辉\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"蒋志恒\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"籍敏\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"黄徐贤\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王继光\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"裴美娟\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"闫铎功\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"陈江义\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"刘颖\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"杨旭[工作号]\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"刘少军\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王贵\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"付玉强\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"张振奎\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"武永江\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"沈体峰\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"孔维娜\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王东亮\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"李鑫\",\n \"responseStatus\": \"accepted\"\n },\n {\n \"displayName\": \"张磊\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"朱晓闪\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"吴斌\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"陈露鑫\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"陈永纯\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"李所清\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"盛超\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"王军超\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"曲宁涛\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"方美\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"杨帆\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"万以华\",\n \"responseStatus\": \"needsAction\"\n },\n {\n \"displayName\": \"毕晨\",\n \"responseStatus\": \"accepted\"\n }\n ],\n \"count\": 70\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1144
},
{
"service": "calendar",
"command": "+book-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +book-list --yes --format json",
"args": [
"calendar",
"+book-list",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"calendars\": [\n {\n \"calendarId\": \"primary\",\n \"description\": null,\n \"privilege\": \"owner\",\n \"summary\": \"我的日历(钉钉)\",\n \"type\": \"primary\"\n }\n ],\n \"count\": 1\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1033
},
{
"service": "calendar",
"command": "+book-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +book-search --query '测试' --yes --format json",
"args": [
"calendar",
"+book-search",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"calendars\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1036
},
{
"service": "calendar",
"command": "+conflicts",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +conflicts --in-days 1 --yes --format json",
"args": [
"calendar",
"+conflicts",
"--in-days",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"conflictCount\": 0,\n \"conflicts\": [],\n \"date\": \"2026-07-16\",\n \"eventCount\": 3,\n \"hasConflict\": false\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2369
},
{
"service": "calendar",
"command": "+free",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +free --who '冬翔' --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --yes --format json",
"args": [
"calendar",
"+free",
"--who",
"冬翔",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"busy\": [],\n \"free\": true,\n \"userId\": \"103262\",\n \"who\": \"夏东翔\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1697
},
{
"service": "calendar",
"command": "+free-slots",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +free-slots --in-days 1 --from 9 --to 18 --yes --format json",
"args": [
"calendar",
"+free-slots",
"--in-days",
"1",
"--from",
"9",
"--to",
"18",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"allBusy\": false,\n \"date\": \"2026-07-16\",\n \"freeSlots\": [\n {\n \"durationMin\": 15,\n \"end\": \"09:15\",\n \"start\": \"09:00\"\n },\n {\n \"durationMin\": 480,\n \"end\": \"18:00\",\n \"start\": \"10:00\"\n }\n ],\n \"slotCount\": 2,\n \"window\": \"09:00-18:00\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2195
},
{
"service": "calendar",
"command": "+freebusy",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +freebusy --users 103262 --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --yes --format json",
"args": [
"calendar",
"+freebusy",
"--users",
"103262",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"result\": [\n {\n \"error\": null,\n \"roomId\": null,\n \"scheduleItems\": [],\n \"userId\": \"103262\"\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1154
},
{
"service": "calendar",
"command": "+my-free",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +my-free --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --yes --format json",
"args": [
"calendar",
"+my-free",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"busy\": [\n {\n \"end\": \"2026-07-16T10:00:00+08:00\",\n \"start\": \"2026-07-16T09:15:00+08:00\"\n }\n ],\n \"free\": false,\n \"userId\": \"202397\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1406
},
{
"service": "calendar",
"command": "+next-event",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +next-event --yes --format json",
"args": [
"calendar",
"+next-event",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"event\": {\n \"end\": \"2026-07-15 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784120400000\",\n \"start\": \"2026-07-15 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n }\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 5504
},
{
"service": "calendar",
"command": "+room-groups",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +room-groups --limit 10 --page 1 --yes --format json",
"args": [
"calendar",
"+room-groups",
"--limit",
"10",
"--page",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"groups\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1224
},
{
"service": "calendar",
"command": "+room-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +room-search --room-name x --yes --format json",
"args": [
"calendar",
"+room-search",
"--room-name",
"x",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"rooms\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1298
},
{
"service": "calendar",
"command": "+suggest-time",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +suggest-time --with '冬翔' --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --duration x --yes --format json",
"args": [
"calendar",
"+suggest-time",
"--with",
"冬翔",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--duration",
"x",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"suggestions\": [\n {\n \"end\": \"2026-07-16T10:30:00+08:00\",\n \"start\": \"2026-07-16T10:00:00+08:00\"\n },\n {\n \"end\": \"2026-07-16T11:00:00+08:00\",\n \"start\": \"2026-07-16T10:30:00+08:00\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1711
},
{
"service": "calendar",
"command": "+today",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +today --yes --format json",
"args": [
"calendar",
"+today",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"events\": [\n {\n \"end\": \"2026-07-15 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784078100000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-15 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-15 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784120400000\",\n \"start\": \"2026-07-15 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1951
},
{
"service": "calendar",
"command": "+tomorrow",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +tomorrow --yes --format json",
"args": [
"calendar",
"+tomorrow",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"events\": [\n {\n \"end\": \"2026-07-16 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784164500000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-16 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-16 20:00\",\n \"eventId\": \"cVRhbUZsMzZscU1XQjd0NURFaEdnZz09\",\n \"location\": \"张功馆·桐庐菜(未来星宸永福店)\",\n \"start\": \"2026-07-16 18:00\",\n \"title\": \"搜问&搜索团队聚餐\"\n },\n {\n \"end\": \"2026-07-16 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784206800000\",\n \"start\": \"2026-07-16 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2254
},
{
"service": "calendar",
"command": "+week",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test calendar +week --yes --format json",
"args": [
"calendar",
"+week",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"events\": [\n {\n \"end\": \"2026-07-13 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1783905300000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-13 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-13 15:30\",\n \"eventId\": \"UTFidStpV3JUcnVQRDhHZThjZVJGQT09\",\n \"start\": \"2026-07-13 15:00\",\n \"title\": \"llm-wiki的能力共创快速对一下使用说明\"\n },\n {\n \"end\": \"2026-07-13 16:15\",\n \"eventId\": \"bjZWVmlieHVpUUJJMm15RGFUMlRIZz09\",\n \"start\": \"2026-07-13 15:30\",\n \"title\": \"聊聊\"\n },\n {\n \"end\": \"2026-07-13 16:30\",\n \"eventId\": \"elVnVE45K1YvcStEbEpvM2RxbGVYQT09\",\n \"location\": \"2003\",\n \"start\": \"2026-07-13 16:00\",\n \"title\": \"AI技术平台小周会\"\n },\n {\n \"end\": \"2026-07-13 18:00\",\n \"eventId\": \"RXJDc2RMNzNPWkRZRnpzTU1NZ1Nsdz09_1783933200000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-13 17:00\",\n \"title\": \"AI营销周会\"\n },\n {\n \"end\": \"2026-07-13 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1783947600000\",\n \"start\": \"2026-07-13 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n },\n {\n \"end\": \"2026-07-14 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1783991700000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-14 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-14 14:30\",\n \"eventId\": \"d1BpNmZOVkdJaFY5dXdIVE9SdkZPQT09\",\n \"location\": \"D1-2001\",\n \"start\": \"2026-07-14 13:30\",\n \"title\": \"简单聊一聊\"\n },\n {\n \"end\": \"2026-07-14 20:30\",\n \"eventId\": \"ZUtBTlQxNjY3TnJKM0JpVEx2T1Ardz09\",\n \"location\": \"D1-2004\",\n \"start\": \"2026-07-14 19:30\",\n \"title\": \"盘一下算法 x 搜索搜问合作\"\n },\n {\n \"end\": \"2026-07-14 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784034000000\",\n \"start\": \"2026-07-14 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n },\n {\n \"end\": \"2026-07-15 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784078100000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-15 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-15 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784120400000\",\n \"start\": \"2026-07-15 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n },\n {\n \"end\": \"2026-07-16 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784164500000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-16 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-16 20:00\",\n \"eventId\": \"cVRhbUZsMzZscU1XQjd0NURFaEdnZz09\",\n \"location\": \"张功馆·桐庐菜(未来星宸永福店)\",\n \"start\": \"2026-07-16 18:00\",\n \"title\": \"搜问&搜索团队聚餐\"\n },\n {\n \"end\": \"2026-07-16 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784206800000\",\n \"start\": \"2026-07-16 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n },\n {\n \"end\": \"2026-07-17 10:00\",\n \"eventId\": \"THN4YUtOTlplYU9sZzd2czE4YURLQT09_1784250900000\",\n \"location\": \"B310\",\n \"start\": \"2026-07-17 09:15\",\n \"title\": \"中控专属钉&AI项目早会\"\n },\n {\n \"end\": \"2026-07-17 18:00\",\n \"eventId\": \"bmVEbnArV25ITStSQlE5WU1QOHhJUT09_1784278800000\",\n \"location\": \"项目室(D1-1604)\",\n \"start\": \"2026-07-17 17:00\",\n \"title\": \"模型算法团队周会\"\n },\n {\n \"end\": \"2026-07-17 21:15\",\n \"eventId\": \"cy81YjB1eW1yMW9SeWRVdHNDVWFhZz09_1784293200000\",\n \"start\": \"2026-07-17 21:00\",\n \"title\": \"循环提醒:项目每日工作进展同步\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 6589
},
{
"service": "chat",
"command": "+at-me",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +at-me --days 7 --yes --format json",
"args": [
"chat",
"+at-me",
"--days",
"7",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"messages\": [\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"粤腾\",\n \"text\": \"@梓寻 @崇幻(主用钉) @陈叙 @念晨 明天下午给孙总的蓝图汇报,最后一part是对本次AI营销项目的建议和求助。大家可以把每个模块目前遇到的问题和困难(例如:需要客户提供的资源、需求落地的阻力等),单独反馈给我。\",\n \"time\": \"2026-07-15 14:29:53\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@念晨 这个知识蓝图好了么?客户想先看一下材料\",\n \"time\": \"2026-07-15 13:41:25\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@念晨 @杨淑平 \\n1、**生产环境:补充一下是否需要域名**[图片消息](mediaId=@lQLPJxN0PcmAzMfNBfDNCuKwMJ8nHWzNI30KKoLRQapEAQ)**2、测试环境:**\\n(1)需要几台服务器,配置保持跟生产一样,还是改一下\\n(2)测试环境是否需要域名,(测试环境就写是否需要好了,可以让客户随机分配下)[图片消息](mediaId=@lQLPJwPJXqYLLMfNBf7NCqCw5iUu-ba7L7IKKoLRQapEAA)\",\n \"time\": \"2026-07-15 10:19:17\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"栩铭-主账号\",\n \"text\": \"@徐洪鑫(崇幻(主用钉)) @董鑫阳(念晨) @陈绪(陈叙) @杨淑平 @梓寻 \\n需要申请 测试服务器环境的同学,在https://alidocs.dingtalk.com/i/nodes/PwkYGxZV3ZEBnPvwI92oDm9rWAgozOKL?utm_scene=team_space&iframeQuery=sheet_range%3Dkgqie6hm_0_11_9_3 “测试环境”Sheet页登记下\\n需要域名的,填写在新增的“域名”栏目\",\n \"time\": \"2026-07-15 09:50:16\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"粤腾\",\n \"text\": \"@梓寻 @陈叙 @崇幻(主用钉) @念晨 各业务场景的蓝图素材还请大家统一补充到钉钉文档中 https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPzYvRArmHv23ye4kWzN67Mw4\",\n \"time\": \"2026-07-14 22:44:59\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@崇幻(主用钉) @陈叙 @念晨 @杨淑平 今日进展和明日计划记得发一下哈,\\n\\n另外再看一下情报助手、活动助手、解决方案助手、专家Agent什么时候可以让中控一线人员在自己的电脑上运行(最小MVP版本),要给下时间\",\n \"time\": \"2026-07-14 21:35:38\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@念晨 选李龙就是@粤腾 批啦[憨笑]\",\n \"time\": \"2026-07-14 20:33:28\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"粤腾\",\n \"text\": \"@崇幻(主用钉) @念晨 @梓寻 @陈叙 如果大家明天上午方便,最好能来中控现场,蓝图规划和场景demo录制两个事现场对齐高效输出。[抱拳]\",\n \"time\": \"2026-07-14 19:13:20\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"粤腾\",\n \"text\": \"@崇幻(主用钉) @陈叙 @梓寻 @念晨 明天要给新的分管It和营销业务副总裁孙总汇报整体项目蓝图规划,辛苦大家今天内把每个模块用户故事动线(产品原型图,demo界面,场景等)串起来的相关素材放到知识库。https://alidocs.dingtalk.com/i/nodes/QPGYqjpJYrlp4LN6IBEylmR48akx1Z5N?corpId=ding5bb1eba46e6a17d94ac5d6980864d335&utm_medium=im_card&iframeQuery=utm_medium%3Dim_card%26utm_source%3Dim&utm_scene=team_space&utm_source=im\",\n \"time\": \"2026-07-14 16:28:06\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@念晨 @陈叙 会议室在 E307\",\n \"time\": \"2026-07-14 13:12:04\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"崇幻这边可以现场演示,@念晨 @陈叙 你俩下午赶的过来么?\",\n \"time\": \"2026-07-14 11:13:17\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@念晨 @粤腾 @梓寻 @陈叙 @崇幻(主用钉) 崔总突然下午要看项目整体进度,需要汇报每个子项目的情况,大概2点半这样。\",\n \"time\": \"2026-07-14 11:11:28\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@念晨 明日计划给你加个知识蓝图输出中,然后约客户周三对焦哈\",\n \"time\": \"2026-07-13 23:14:03\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"千启\",\n \"text\": \"@陈叙 @念晨 @杨淑平 今日进展和明天计划记得同步下[送花花]\",\n \"time\": \"2026-07-13 21:40:08\"\n },\n {\n \"conversation\": \"【内】中控每日工作进展汇总群\",\n \"sender\": \"粤腾\",\n \"text\": \"还差一个情报助理和 知识库与中控制标Agent打通。 @杨淑平 情报助理看下周三能做到什么程度。 @念晨 知识库与中控制标Agent打通 需要在7 18 的demo演示中打通么。\",\n \"time\": \"2026-07-13 16:43:23\"\n },\n {\n \"conversation\": \"算法团队mentor群(内部讨论群)\",\n \"sender\": \"璟琦(主用钉)\",\n \"text\": \"@董鑫阳(念晨) https://acl.alibaba-inc.com/permission/datapermission/applyDetail.htm?spm=21540d8c.6248353e.0.0.6ae2264c9zDMFB&flowId=3cd438c0-2cee-4eac-a763-4625dbf2b51d\",\n \"time\": \"2026-07-15 10:54:23\"\n },\n {\n \"conversation\": \"算法团队mentor群(内部讨论群)\",\n \"sender\": \"九韶\",\n \"text\": \"@董鑫阳(念晨) 给你留了一个目标, 你抓紧更新,进去。 我给大哥先发一般\",\n \"time\": \"2026-07-14 16:15:16\"\n },\n {\n \"conversation\": \"算法团队mentor群(内部讨论群)\",\n \"sender\": \"璟琦(主用钉)\",\n \"text\": \"@董鑫阳(念晨) 你补一下 中控 及 专家agent 的部分\",\n \"time\": \"2026-07-14 15:48:29\"\n },\n {\n \"conversation\": \"算法团队mentor群(内部讨论群)\",\n \"sender\": \"璟琦(主用钉)\",\n \"text\": \"@董鑫阳(念晨) cli实现的时候这里面的能力最好都支持\",\n \"time\": \"2026-07-14 10:49:39\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"筱淘\",\n \"text\": \"@董鑫阳(念晨) 让客户再等等 明天见客户\",\n \"time\": \"2026-07-15 09:48:49\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 没事,下次星爷的美人鱼2要在2028年上映了,到时候我们再一起翘班去\",\n \"time\": \"2026-07-15 09:41:06\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@卢翮(龙衔) @董鑫阳(念晨) 去么去么\",\n \"time\": \"2026-07-15 09:22:09\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) @蒋志刚(穆伦) @卢翮(龙衔) 去么,去么\",\n \"time\": \"2026-07-15 09:16:18\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 哪个 HR 问你\",\n \"time\": \"2026-07-15 09:10:25\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"穆伦\",\n \"text\": \"@Dennis(念晨) 为啥这么问呢?你们那边没有好的位置?\",\n \"time\": \"2026-07-15 09:05:14\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"筱淘\",\n \"text\": \"@董鑫阳(念晨) 还等什么 来吧\",\n \"time\": \"2026-07-15 09:00:21\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 害怕\",\n \"time\": \"2026-07-14 22:01:18\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"穆伦\",\n \"text\": \"@Dennis(念晨) 展开说说\",\n \"time\": \"2026-07-14 16:39:26\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"龙衔\",\n \"text\": \"@董鑫阳(念晨) 聊啥\",\n \"time\": \"2026-07-14 16:36:03\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"穆伦\",\n \"text\": \"@Dennis(念晨) 什么评价\",\n \"time\": \"2026-07-14 16:33:04\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 我就说旁边有个车神经的滴滴我\",\n \"time\": \"2026-07-14 13:04:30\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 赛银\",\n \"time\": \"2026-07-14 12:51:33\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 刚才出来的车是你的呀\",\n \"time\": \"2026-07-14 12:51:27\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 你最后一条为什么只出现一半\",\n \"time\": \"2026-07-14 10:27:07\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) iPad or Mac?\",\n \"time\": \"2026-07-14 10:23:28\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"龙衔\",\n \"text\": \"@董鑫阳(念晨) 走,请你吃面\",\n \"time\": \"2026-07-13 18:26:51\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"龙衔\",\n \"text\": \"@董鑫阳(念晨) 茶叶忘了给你了 下次吃饭吧 头大 脑子不够了\",\n \"time\": \"2026-07-13 14:14:22\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 下午你来\",\n \"time\": \"2026-07-13 11:37:02\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 你是开个新卡,还是试试筱淘那个100多的\",\n \"time\": \"2026-07-13 11:33:47\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨)\",\n \"time\": \"2026-07-13 11:32:43\"\n },\n {\n \"conversation\": \"AI全栈\",\n \"sender\": \"怒龙\",\n \"text\": \"@董鑫阳(念晨) 我给你开个卡?\",\n \"time\": \"2026-07-13 11:28:36\"\n },\n {\n \"conversation\": \"元智,九韶,璟琦(主用钉),念晨\",\n \"sender\": \"元智\",\n \"text\": \"@董鑫阳(念晨) 给力,scope更大了\",\n \"time\": \"2026-07-14 15:39:19\"\n },\n {\n \"conversation\": \"元智,九韶,璟琦(主用钉),念晨\",\n \"sender\": \"九韶\",\n \"text\": \"@董鑫阳(念晨) 汇报过了吗? 怎么样?\",\n \"time\": \"2026-07-14 15:19:43\"\n },\n {\n \"conversation\": \"[会议群]销售知识库方案讨论\",\n \"sender\": \"赵瑞(玖霄)\",\n \"text\": \"我来约你时间@念晨\",\n \"time\": \"2026-07-14 12:37:23\"\n },\n {\n \"conversation\": \"[会议群]销售知识库方案讨论\",\n \"sender\": \"迦卢\",\n \"text\": \"@赵瑞(玖霄) 你把需求和@念晨 对焦下\",\n \"time\": \"2026-07-14 12:25:15\"\n },\n {\n \"conversation\": \"[会议群]销售知识库方案讨论\",\n \"sender\": \"迦卢\",\n \"text\": \"@赵瑞(玖霄) @念晨 是知识库这边的技术架构师,目前还没有产品,但是他来进行和我们共创\",\n \"time\": \"2026-07-13 17:48:48\"\n },\n {\n \"conversation\": \"FDE Go\",\n \"sender\": \"冬翔\",\n \"text\": \"@董鑫阳(念晨) 你的Claude还是不能用?\",\n \"time\": \"2026-07-14 10:22:12\"\n },\n {\n \"conversation\": \"FDE Go\",\n \"sender\": \"黎常\",\n \"text\": \"@董鑫阳(念晨) 这个确实太傻逼了,放着好好优势不用\",\n \"time\": \"2026-07-14 09:55:49\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2787
},
{
"service": "chat",
"command": "+bot-find",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +bot-find --query '测试' --limit 10 --cursor '' --yes --format json",
"args": [
"chat",
"+bot-find",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"bots\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1312
},
{
"service": "chat",
"command": "+bot-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +bot-search --page 1 --size 1 --name 'DWS shortcut 真实测试' --yes --format json",
"args": [
"chat",
"+bot-search",
"--page",
"1",
"--size",
"1",
"--name",
"DWS shortcut 真实测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"robots\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1191
},
{
"service": "chat",
"command": "+category-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +category-list --yes --format json",
"args": [
"chat",
"+category-list",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"categories\": [\n {\n \"categoryId\": 1561691365563,\n \"title\": \"大型摸鱼现场\"\n },\n {\n \"categoryId\": 1761880390389,\n \"title\": \"悟空\"\n },\n {\n \"categoryId\": 1561692216352,\n \"title\": \"钉钉\"\n },\n {\n \"categoryId\": 1761880350586,\n \"title\": \"RELU\"\n },\n {\n \"categoryId\": 1767577825401,\n \"title\": \"X Project\"\n },\n {\n \"categoryId\": 1770100726133,\n \"title\": \"A1合作\"\n },\n {\n \"categoryId\": 1764209474291,\n \"title\": \"CodeAgent\"\n },\n {\n \"categoryId\": 1764818531490,\n \"title\": \"DeepResearch\"\n },\n {\n \"categoryId\": 1765771015868,\n \"title\": \"J Project\"\n },\n {\n \"categoryId\": 1761881089886,\n \"title\": \"客户服务\"\n }\n ],\n \"count\": 10\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1326
},
{
"service": "chat",
"command": "+chat-bots",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-bots --group cid3Jijzhe2aqs9ysOXjhi05g== --yes --format json",
"args": [
"chat",
"+chat-bots",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"bots\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 907
},
{
"service": "chat",
"command": "+chat-invite-url",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-invite-url --group cid3Jijzhe2aqs9ysOXjhi05g== --expires-seconds 1 --yes --format json",
"args": [
"chat",
"+chat-invite-url",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--expires-seconds",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"inviteUrl\": \"https://qr.dingtalk.com/action/joingroup?code=v1,k1,Rj9aR+97xuRdK0cKsvoU/daj0MZj7p02n7pETjkgcMo=\\u0026_dt_no_comment=1\\u0026origin=11\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 958
},
{
"service": "chat",
"command": "+chat-list-all",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-list-all --limit 10 --cursor 0 --yes --format json",
"args": [
"chat",
"+chat-list-all",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 9,\n \"groups\": [\n {\n \"name\": \"浅曦-kida,Dennis,秋画\",\n \"openConversationId\": \"cid3Jijzhe2aqs9ysOXjhi05g==\"\n },\n {\n \"name\": \"Dennis,梨岚,浅曦,秋画\",\n \"openConversationId\": \"cidBRb3r823j/rs8mGdPervyQ==\"\n },\n {\n \"name\": \"HISTORE_DINGDING_VOIP_APP\",\n \"openConversationId\": \"cid68WRQRLAWFUvSWPjFTxQEg==\"\n },\n {\n \"name\": \"钉钉19届应届生校招群\",\n \"openConversationId\": \"cidsXjWvcYMguAWhhE6x1PsRw==\"\n },\n {\n \"name\": \"钉钉尖角班第21期欢迎你!\",\n \"openConversationId\": \"cid2YTSHeguqsO/PjSu33/IRA==\"\n },\n {\n \"name\": \"钉子户\",\n \"openConversationId\": \"cidCVNiNIaY1vsA6Hp0rUvk7w==\"\n },\n {\n \"name\": \"应用通知\",\n \"openConversationId\": \"cidPrcdDg1wZb3/0oQRIWxVRw==\"\n },\n {\n \"name\": \"三口之家\",\n \"openConversationId\": \"cid8eLJsKOY3EwulLUqD3jVbA==\"\n },\n {\n \"name\": \"工作通知:三口之家\",\n \"openConversationId\": \"cidAHnUfD5n2F+Ybdsqeu9ymQ==\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1043
},
{
"service": "chat",
"command": "+chat-list-join-requests",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-list-join-requests --limit 10 --cursor 0 --yes --format json",
"args": [
"chat",
"+chat-list-join-requests",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"hasMore\": false,\n \"nextCursor\": 0,\n \"records\": []\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 960
},
{
"service": "chat",
"command": "+chat-list-mine",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-list-mine --role OWNER --limit 10 --exclude-muted --yes --format json",
"args": [
"chat",
"+chat-list-mine",
"--role",
"OWNER",
"--limit",
"10",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 10,\n \"groups\": [\n {\n \"name\": \"DING_VIBE_CODING没统计到token的问题\",\n \"openConversationId\": \"cidl/foiVj/HRZjBxQI4+Y81g==\"\n },\n {\n \"name\": \"钉钉 EveryDay X RELU 共创\",\n \"openConversationId\": \"cid7XlLm5toebOyqw0J3GJfmA==\"\n },\n {\n \"name\": \"中控测试\",\n \"openConversationId\": \"cidwnTdZmw2YMznZKLOmws9VQ==\"\n },\n {\n \"name\": \"国粹候选人\",\n \"openConversationId\": \"cidw+0WK0/N8nrKwvcgpg6AJQ==\"\n },\n {\n \"name\": \"X 项目算法支持\",\n \"openConversationId\": \"cidbDGRPLyhdI1/b85MiUSz5Q==\"\n },\n {\n \"name\": \"悟空 Agent Runtime Scrum\",\n \"openConversationId\": \"cidCAHeQDMT93RTArxiqBJLiA==\"\n },\n {\n \"name\": \"电商刊登接入CodeAgent\",\n \"openConversationId\": \"cid6IhuGpSIpuosGTGusYUc2g==\"\n },\n {\n \"name\": \"0529机器人 && 移动端中控问题跟进\",\n \"openConversationId\": \"cidXMfbCGTSiHzLLaRV5WDXgw==\"\n },\n {\n \"name\": \"念晨,伊玲,双数\",\n \"openConversationId\": \"cid/xM8a62lWiQGkfgLi4kfhA==\"\n },\n {\n \"name\": \"方齐,念晨,向尘\",\n \"openConversationId\": \"cidpG74/BF0DPbkIHS42XPZZg==\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1799
},
{
"service": "chat",
"command": "+chat-role-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-role-list --group cid3Jijzhe2aqs9ysOXjhi05g== --yes --format json",
"args": [
"chat",
"+chat-role-list",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"roles\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 928
},
{
"service": "chat",
"command": "+chat-role-query-user",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-role-query-user --group cid3Jijzhe2aqs9ysOXjhi05g== --user '冬翔' --yes --format json",
"args": [
"chat",
"+chat-role-query-user",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--user",
"冬翔",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"roles\": []\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 958
},
{
"service": "chat",
"command": "+chat-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +chat-search --query '测试' --limit 10 --cursor 0 --exclude-muted --yes --format json",
"args": [
"chat",
"+chat-search",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"groups\": [\n {\n \"channel\": false,\n \"createAt\": \"2026-06-09 09:21:07\",\n \"extension\": {\n \"newCSpaceIdIM\": \"29001572040\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 4,\n \"openConversationId\": \"cidYmSrmbqMM/OseCzcs4cJdg==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"title\": \"测试群已废弃\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-06-09 09:21:00\",\n \"extension\": {\n \"newCSpaceIdIM\": \"29001813316\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 3,\n \"openConversationId\": \"cidSIMPP2TD6HZcn1nO0mVNoA==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"title\": \"测试群已废弃\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-05-13 16:22:30\",\n \"extension\": {\n \"newCSpaceIdIM\": \"28540426059\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 70,\n \"openConversationId\": \"cidU38vTWZbweyBRT71Md/KJQ==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UXSDzdMWL3Ls3VUvhTCwbT\",\n \"title\": \"测试项目沟通群\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-04-24 11:49:36\",\n \"extension\": {\n \"newCSpaceIdIM\": \"28740101247\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 2,\n \"openConversationId\": \"cidOpAz1EH8TLuD9H1Who48pw==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"title\": \"测试项目沟通群\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-06-26 14:05:19\",\n \"extension\": {\n \"newCSpaceIdIM\": \"29101779299\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 2,\n \"openConversationId\": \"cidp+Oj7m1gJnx+bCtTn3vhcQ==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"title\": \"Spur测试\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-07-02 11:26:29\",\n \"extension\": {\n \"newCSpaceIdIM\": \"29137611383\"\n },\n \"groupType\": \"NEW_EXTERNAL_GROUP\",\n \"memberCount\": 1,\n \"openConversationId\": \"cidwnTdZmw2YMznZKLOmws9VQ==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"title\": \"中控测试\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-06-09 11:03:12\",\n \"extension\": {\n \"newCSpaceIdIM\": \"29002815625\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 2,\n \"openConversationId\": \"cid3hq0VEj6C6FtEtDsWCtNwg==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"title\": \"评测复盘讨论群-测试\"\n },\n {\n \"channel\": true,\n \"createAt\": \"2026-03-24 18:10:34\",\n \"extension\": {\n \"newCSpaceIdIM\": \"28494427717\"\n },\n \"groupType\": \"NEW_EXTERNAL_GROUP\",\n \"memberCount\": 2628,\n \"openConversationId\": \"cidm6kkku3iW/ddE/DuoWOEnQ==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3XSNFHTUgOrXFyf7hpLIgii2\",\n \"title\": \"悟空问题反馈群\"\n },\n {\n \"channel\": false,\n \"createAt\": \"2026-05-13 16:23:30\",\n \"extension\": {\n \"newCSpaceIdIM\": \"28540433569\"\n },\n \"groupType\": \"INTERNAL_GROUP\",\n \"memberCount\": 71,\n \"openConversationId\": \"cidzoNLz/wgp7gRm/mRph+MxA==\",\n \"ownerOpenDingtalkId\": \"D1jIqGatuH3UXSDzdMWL3Ls3VUvhTCwbT\",\n \"title\": \"日常消息同步群\"\n }\n ],\n \"hasMore\": true,\n \"nextCursor\": \"da8b2b5ea0a50c4ae90dcf38edde9f52425c3bb1dd7cb1eddf53e7db6b73b3c4299e03fd01b0cf917b20e2f46a4f5e13bb7a1bd722cf6c4a372c6971d3c37fb7a3301ae0e438d2556a38ae1fc9c6ee9c110732c3d5d829998a367dc7ebd3a0f639e2dc0841255be944cf07a406575e4cbee22cfca7f309a6bba4d6c35f7d3bd05ce9af894fd2f107f264c0c16d61f6c778e2c2e5c3ea05bc0f77ae6cd7bf402f77218ef7439e2483e5348b3cc40b6a28eeb87bc58925bff5a69d0b080d3818ef1eed93958ffb401cb286b4e885564950f46fa42ad85b4161fd5752f840865648c4e2a89a26f8e241ee476d17a8a2352feb4e1f7d97b28d69aeba429b1e6565fd9acc3e2aa71ec6c05d0a31d90c451aa3\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1176
},
{
"service": "chat",
"command": "+conversation-info",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +conversation-info --group cid3Jijzhe2aqs9ysOXjhi05g== --open-dingtalk-id x --yes --format json",
"args": [
"chat",
"+conversation-info",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--open-dingtalk-id",
"x",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"conversationInfo\": {\n \"createAt\": \"2018-11-13 12:39:07\",\n \"extension\": {\n \"newCSpaceIdIM\": \"1090404636\"\n },\n \"memberCount\": 3,\n \"openConversationId\": \"cid3Jijzhe2aqs9ysOXjhi05g==\",\n \"ownerNick\": \"浅曦\",\n \"singleChat\": false,\n \"title\": \"浅曦-kida,Dennis,秋画\"\n }\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 942
},
{
"service": "chat",
"command": "+conversation-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +conversation-list --limit 10 --cursor 0 --exclude-muted --yes --format json",
"args": [
"chat",
"+conversation-list",
"--limit",
"10",
"--cursor",
"0",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"conversations\": [\n {\n \"conversationName\": \"AI全栈\",\n \"openConversationId\": \"cidGAcU1FHD+D2n3W6d+SXuhw==\"\n },\n {\n \"conversationName\": \"念晨\",\n \"openConversationId\": \"cidLw95vHkBXGePhIxRvleOUOtxfWW7v5vcWfa2fdxfxyg=\"\n },\n {\n \"conversationName\": \"九韶\",\n \"openConversationId\": \"cidJdiIbpqCvEjbCuwHaHwR4A==\"\n },\n {\n \"conversationName\": \"战友会\",\n \"openConversationId\": \"cidK7s9XRz94DFkk4raOLduFw==\"\n },\n {\n \"conversationName\": \"生煎包\",\n \"openConversationId\": \"cid2CMDRvYP+Aw5ioOfP+se4+txfWW7v5vcWfa2fdxfxyg=\"\n },\n {\n \"conversationName\": \"Wukong & Real 日志群\",\n \"openConversationId\": \"ciddYsoBxGQrFWR5zJ8lnpPBg==\"\n },\n {\n \"conversationName\": \"粤腾\",\n \"openConversationId\": \"cid72F2hVHMoijoL1CvmWp1ImIo0AJKl0bni7qLL0B05PA=\"\n },\n {\n \"conversationName\": \"算法团队全员群\",\n \"openConversationId\": \"cidXMThCvAfn35/JRu/JOr6BA==\"\n },\n {\n \"conversationName\": \"汇量问题反馈✖️skill/mcp\",\n \"openConversationId\": \"cidTm/YDFJ/jgGFYFe3UF6dzA==\"\n },\n {\n \"conversationName\": \"亲橙park舒婷水果优惠1群\",\n \"openConversationId\": \"cid9LvgVwAlIvDBduIER4jFQg==\"\n }\n ],\n \"count\": 10\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2857
},
{
"service": "chat",
"command": "+conversation-list-top",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +conversation-list-top --limit 10 --cursor 0 --exclude-muted --yes --format json",
"args": [
"chat",
"+conversation-list-top",
"--limit",
"10",
"--cursor",
"0",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"conversations\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1091
},
{
"service": "chat",
"command": "+messages-list-direct",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +messages-list-direct --user 103262 --time '2026-07-15 10:00:00' --forward --limit 10 --yes --format json",
"args": [
"chat",
"+messages-list-direct",
"--user",
"103262",
"--time",
"2026-07-15 10:00:00",
"--forward",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 4,\n \"messages\": [\n {\n \"createTime\": \"2026-07-15 11:02:04\",\n \"messageId\": \"msgmsdyW4xAGL0iXVc9mR4V0g==\",\n \"senderId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"text\": \"[文档](https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO)\\nDWS shortcut 修复复测 20260715:验证 doc +share-doc,请忽略。\"\n },\n {\n \"createTime\": \"2026-07-15 11:01:49\",\n \"messageId\": \"msgj2fRqVeyvOLxrZ5EntlMIA==\",\n \"senderId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"text\": \"DWS shortcut 修复复测 20260715:验证 chat +broadcast,请忽略。\"\n },\n {\n \"createTime\": \"2026-07-15 11:01:34\",\n \"messageId\": \"msgEuOor1PmFBNlx9M06N9z1Q==\",\n \"senderId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"text\": \"DWS shortcut 修复复测 20260715:验证 chat +dm,请忽略。\"\n },\n {\n \"createTime\": \"2026-07-15 10:12:31\",\n \"messageId\": \"msg4cdzVyqpmXc9WAxnR3lcYQ==\",\n \"senderId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"text\": \"-1\\nDWS shortcut 真实测试 20260715 日程,可忽略\\nAsia/Shanghai\\ndingtalk://dingtalkclient/action/switchtab?index=1&name=ding&type=calendar&targetDateTime=1784172600000\\n1\\n1784173500000\\n日历使用手册\\n0\\ndingtalk://dingtalkclient/page/calendar_detail?uniqueId=c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09&corpId=ding8196cd9a2b2405da24f2f5cc6abecb85&from=im_card&redirect_url=https%3A%2F%2Fn.dingtalk.com%2Fdingding%2Fcalendar%2Fdetail%2Findex.html%3Fdd_full_screen%3Dtrue%26dd_progress%3Dfalse%26dd_darkmode%3Dtrue%26%26dd_android_full%3Dtrue%26uniqueId%3Dc0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09%26corpId%3Dding8196cd9a2b2405da24f2f5cc6abecb85%26from%3Dim_card\\n0\\n0\\n了解详情\\n1784172600000\\n1\\n439446171\\n1784172600000\\n1784081621092b363beb2-0536-4131-b9ca-935571fca90d\\ndingtalk://dingtalkclient/page/link?url=https%3A%2F%2Falidocs.dingtalk.com%2Fi%2Fp%2FY7kmbokZp3pgGLq2%2Fdocs%2F7Y36k14mK9AV3pKq5zA1J5NqapjblR2D\\nfalse\\n0\\n512653609\\n999\\n1784173500000\\ndingtalk://dingtalkclient/page/calendar_detail?uniqueId=c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09&corpId=ding8196cd9a2b2405da24f2f5cc6abecb85&from=im_card&redirect_url=https%3A%2F%2Fn.dingtalk.com%2Fdingding%2Fcalendar%2Fdetail%2Findex.html%3Fdd_full_screen%3Dtrue%26dd_progress%3Dfalse%26dd_darkmode%3Dtrue%26%26dd_android_full%3Dtrue%26uniqueId%3Dc0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09%26corpId%3Dding8196cd9a2b2405da24f2f5cc6abecb85%26from%3Dim_card\\nc0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1386
},
{
"service": "chat",
"command": "+messages-list-pin",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +messages-list-pin --open-conversation-id cid3Jijzhe2aqs9ysOXjhi05g== --cursor 0 --size 1 --yes --format json",
"args": [
"chat",
"+messages-list-pin",
"--open-conversation-id",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--cursor",
"0",
"--size",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"pins\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1105
},
{
"service": "chat",
"command": "+messages-list-unread-conversations",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +messages-list-unread-conversations --count 1 --exclude-muted --yes --format json",
"args": [
"chat",
"+messages-list-unread-conversations",
"--count",
"1",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"conversations\": [\n {\n \"conversationId\": \"ciddYsoBxGQrFWR5zJ8lnpPBg==\",\n \"title\": \"Wukong & Real 日志群\"\n }\n ],\n \"count\": 1\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1575
},
{
"service": "chat",
"command": "+my-groups",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +my-groups --type ALL --yes --format json",
"args": [
"chat",
"+my-groups",
"--type",
"ALL",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"groups\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1499
},
{
"service": "chat",
"command": "+unread-chats",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +unread-chats --count 1 --exclude-muted --yes --format json",
"args": [
"chat",
"+unread-chats",
"--count",
"1",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"conversations\": [\n {\n \"conversationId\": \"ciddYsoBxGQrFWR5zJ8lnpPBg==\",\n \"name\": \"Wukong & Real 日志群\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1649
},
{
"service": "contact",
"command": "+dept-members",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +dept-members --dept '模型算法' --yes --format json",
"args": [
"contact",
"+dept-members",
"--dept",
"模型算法",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"deptUserList\": [\n {\n \"userInfo\": {\n \"name\": \"冯铖喆\",\n \"userId\": \"453559\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"何佳瑶\",\n \"userId\": \"548493\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"陈梦媛\",\n \"userId\": \"378607\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"张俊韶\",\n \"userId\": \"030386\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"陈邦杰\",\n \"userId\": \"489149\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"王昊东\",\n \"userId\": \"548778\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"岑锦锋\",\n \"userId\": \"547857\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"彭智韩\",\n \"userId\": \"478801\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"王迎湃\",\n \"userId\": \"543875\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"段旭彬\",\n \"userId\": \"550582\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"牛康佳\",\n \"userId\": \"484887\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"符咏畅\",\n \"userId\": \"519483\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"代成俊\",\n \"userId\": \"167095\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"黄渊卓\",\n \"userId\": \"519019\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"董鑫阳\",\n \"userId\": \"202397\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"崔佳骐\",\n \"userId\": \"534975\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"郑琪欣\",\n \"userId\": \"543310\"\n }\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1539
},
{
"service": "contact",
"command": "+list-dept-members",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +list-dept-members --depts x --yes --format json",
"args": [
"contact",
"+list-dept-members",
"--depts",
"x",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"members\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 965
},
{
"service": "contact",
"command": "+list-followings",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +list-followings --yes --format json",
"args": [
"contact",
"+list-followings",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 13,\n \"followings\": [\n {\n \"openDingTalkId\": \"D1jIqGatuH3UbjK1S0jAZJrukgiPdVtRlZ\"\n },\n {\n \"openDingTalkId\": \"DS8iSxaOjF5pjvmTc3wM85awiEiE\"\n },\n {\n \"openDingTalkId\": \"D1jIqGatuH3UrNUuSZbqakTnUpQ3uwcViS\"\n },\n {\n \"openDingTalkId\": \"D1jIqGatuH3X0M3DbwmJLFJDaK7t2NhxA\"\n },\n {\n \"openDingTalkId\": \"D51G4GOo4SMLvmTc3wM85awiEiE\"\n },\n {\n \"openDingTalkId\": \"DHpuMVMNL77HvmTc3wM85awiEiE\"\n },\n {\n \"openDingTalkId\": \"DO3r8ZwxEZ7iSvmTc3wM85awiEiE\"\n },\n {\n \"openDingTalkId\": \"DbQkLTHgGzOiSvmTc3wM85awiEiE\"\n },\n {\n \"openDingTalkId\": \"D1jIqGatuH3UgB25OaELcBlHqiPGB82YtU\"\n },\n {\n \"openDingTalkId\": \"D8y2OTDIEjFjWZ8DyfnKC9lug4rSiPJt8I\"\n },\n {\n \"openDingTalkId\": \"DepgurAiSOr3bvpshro641ZyKOpvhZI2tI\"\n },\n {\n \"openDingTalkId\": \"DtMlaaX4m2p8qiPOT4eDpd1MUBtiiFg6Xhx\"\n },\n {\n \"openDingTalkId\": \"D1jIqGatuH3U4ekOiiRj3wcvSfoaqqfvEb\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1658
},
{
"service": "contact",
"command": "+list-role-members",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +list-role-members --id DWSREALREADNOSUCHID0000000000000 --yes --format json",
"args": [
"contact",
"+list-role-members",
"--id",
"DWSREALREADNOSUCHID0000000000000",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"members\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1162
},
{
"service": "contact",
"command": "+list-roles",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +list-roles --yes --format json",
"args": [
"contact",
"+list-roles",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"roles\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1227
},
{
"service": "contact",
"command": "+list-sub-depts",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +list-sub-depts --dept 842379556 --yes --format json",
"args": [
"contact",
"+list-sub-depts",
"--dept",
"842379556",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"depts\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1217
},
{
"service": "contact",
"command": "+lookup",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +lookup --name '冬翔' --yes --format json",
"args": [
"contact",
"+lookup",
"--name",
"冬翔",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"result\": [\n {\n \"isAdmin\": true,\n \"orgEmployeeModel\": {\n \"depts\": [\n {\n \"deptId\": 996530034,\n \"deptName\": \"AI终端与创新\"\n }\n ],\n \"jobNumber\": \"103262\",\n \"labels\": [\n {\n \"groupName\": \"默认\",\n \"id\": 2679876691,\n \"name\": \"子管理员\",\n \"tagGroupCode\": \"2679876691\"\n },\n {\n \"groupName\": \"默认\",\n \"id\": 2679876693,\n \"name\": \"主管\",\n \"tagGroupCode\": \"2679876693\"\n }\n ],\n \"orgAuthEmail\": null,\n \"orgId\": null,\n \"orgMasterDisplayName\": \"朱鸿\",\n \"orgMasterUserId\": \"024083\",\n \"orgName\": \"钉钉\",\n \"orgTitle\": \"\",\n \"orgUserId\": \"103262\",\n \"orgUserName\": \"夏东翔\",\n \"positions\": [\n {\n \"deptId\": 996530034,\n \"isMain\": true,\n \"managerDisplayName\": null,\n \"managerStaffId\": null,\n \"title\": null,\n \"workStation\": \"浙江-杭州-阿里中心·杭州未科 \"\n }\n ]\n }\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1698
},
{
"service": "contact",
"command": "+me",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +me --yes --format json",
"args": [
"contact",
"+me",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"dept\": \"模型算法\",\n \"mobile\": \"13161187007\",\n \"name\": \"董鑫阳\",\n \"org\": \"钉钉\",\n \"userId\": \"202397\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1072
},
{
"service": "contact",
"command": "+org",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +org --name '冬翔' --yes --format json",
"args": [
"contact",
"+org",
"--name",
"冬翔",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"result\": {\n \"deptId\": 996530034,\n \"deptName\": \"AI终端与创新\",\n \"memberCount\": 5\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1627
},
{
"service": "contact",
"command": "+resolve-dept",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +resolve-dept --name '模型算法' --yes --format json",
"args": [
"contact",
"+resolve-dept",
"--name",
"模型算法",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"deptId\": \"842379556\",\n \"name\": \"技术平台-模型算法\",\n \"resolved\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1186
},
{
"service": "contact",
"command": "+search-mobile",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +search-mobile --mobile 13000000000 --yes --format json",
"args": [
"contact",
"+search-mobile",
"--mobile",
"13000000000",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"users\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1415
},
{
"service": "contact",
"command": "+search-user",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +search-user --query '测试' --yes --format json",
"args": [
"contact",
"+search-user",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 4,\n \"users\": [\n {\n \"flowerName\": null,\n \"name\": null,\n \"openDingTalkId\": \"Dn3FQ9n3oCiiNviSya2usICjFug4rSiPJt8I\",\n \"title\": null,\n \"userId\": null\n },\n {\n \"flowerName\": null,\n \"name\": null,\n \"openDingTalkId\": \"Dxud965XFNRyGCOG0Bwk0pVug4rSiPJt8I\",\n \"title\": null,\n \"userId\": null\n },\n {\n \"flowerName\": null,\n \"name\": null,\n \"openDingTalkId\": \"D1jIqGatuH3VffnYwNdg1p2LlYiSf05oYii\",\n \"title\": null,\n \"userId\": null\n },\n {\n \"flowerName\": null,\n \"name\": \"测试\",\n \"openDingTalkId\": \"D1jIqGatuH3WSeoELOC89rgTx03b5vNii1\",\n \"title\": \"\",\n \"userId\": \"036230684122903146\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1419
},
{
"service": "contact",
"command": "+team",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +team --name '冬翔' --yes --format json",
"args": [
"contact",
"+team",
"--name",
"冬翔",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"deptUserList\": [\n {\n \"userInfo\": {\n \"name\": \"黄文杰\",\n \"userId\": \"106261\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"夏东翔\",\n \"userId\": \"103262\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"何伟楠\",\n \"userId\": \"106201\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"汪鑫\",\n \"userId\": \"323179\"\n }\n },\n {\n \"userInfo\": {\n \"name\": \"刘光宇\",\n \"userId\": \"112161\"\n }\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1738
},
{
"service": "devapp",
"command": "+event-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +event-list --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --keyword '测试' --cursor '' --page-size 10 --yes --format json",
"args": [
"devapp",
"+event-list",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--keyword",
"测试",
"--cursor",
"",
"--page-size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"events\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1214
},
{
"service": "devapp",
"command": "+get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +get --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --yes --format json",
"args": [
"devapp",
"+get",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"appKey\": \"dingdtqbtxgtn2r5uyge\",\n \"appStatus\": \"normal\",\n \"canDelete\": true,\n \"canUpdate\": true,\n \"creator\": \"董鑫阳\",\n \"desc\": \"DTDennisLobster\",\n \"gmtCreate\": \"2026-03-06 10:41:40\",\n \"gmtModified\": \"2026-03-06 10:41:40\",\n \"icon\": \"@lADPDfmVQafoVxrMyMzI\",\n \"iconUrl\": \"https://i01.lw.aliimg.com/media/lADPDfmVQafoVxrMyMzI_200_200.jpg\",\n \"name\": \"DTDennisLobster\",\n \"supportHarmony\": false,\n \"unifiedAppId\": \"678f27ec-4339-49d8-9c49-371b284bf552\",\n \"versionStatus\": \"INIT\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1268
},
{
"service": "devapp",
"command": "+list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +list --name 'DWS shortcut 真实测试' --app-key x --app-group-id 1 --creator x --robot-name x --develop-type 1 --filter-cool-app 1 --sort-type x --sort-order x --cursor '' --page-size 10 --yes --format json",
"args": [
"devapp",
"+list",
"--name",
"DWS shortcut 真实测试",
"--app-key",
"x",
"--app-group-id",
"1",
"--creator",
"x",
"--robot-name",
"x",
"--develop-type",
"1",
"--filter-cool-app",
"1",
"--sort-type",
"x",
"--sort-order",
"x",
"--cursor",
"",
"--page-size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"apps\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 8524
},
{
"service": "devapp",
"command": "+member-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +member-list --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --yes --format json",
"args": [
"devapp",
"+member-list",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"members\": [\n {\n \"memberType\": \"OWNER\",\n \"name\": \"董鑫阳\",\n \"userId\": \"202397\"\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1404
},
{
"service": "devapp",
"command": "+permission-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +permission-list --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --keyword '测试' --auth-status ALL --cursor '' --page-size 10 --yes --format json",
"args": [
"devapp",
"+permission-list",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--keyword",
"测试",
"--auth-status",
"ALL",
"--cursor",
"",
"--page-size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"permissions\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1578
},
{
"service": "devapp",
"command": "+robot-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +robot-get --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --yes --format json",
"args": [
"devapp",
"+robot-get",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"configured\": false,\n \"message\": \"应用未配置机器人。\",\n \"robotStatus\": \"UNCONFIGURED\",\n \"unifiedAppId\": \"678f27ec-4339-49d8-9c49-371b284bf552\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1204
},
{
"service": "devapp",
"command": "+version-check-approval",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +version-check-approval --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --version-id 4743accb-45e2-4bc9-8c96-74fc62ace2e8 --yes --format json",
"args": [
"devapp",
"+version-check-approval",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--version-id",
"4743accb-45e2-4bc9-8c96-74fc62ace2e8",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"approvalCandidates\": [\n {\n \"mainAdmin\": false,\n \"name\": \"王军\",\n \"userId\": \"084896\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"尤坤\",\n \"userId\": \"425982\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"贺汝坤\",\n \"userId\": \"453209\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"倪爽\",\n \"userId\": \"443841\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"谢传贵\",\n \"userId\": \"014823\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"史伟民\",\n \"userId\": \"188288\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"郭迪\",\n \"userId\": \"452337\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"周子杰\",\n \"userId\": \"312753\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"刘畅\",\n \"userId\": \"068373\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"张磊\",\n \"userId\": \"371811\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"霍俊龙\",\n \"userId\": \"068428\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"李晓军\",\n \"userId\": \"004897\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"姚海龙\",\n \"userId\": \"107578\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王丽丽\",\n \"userId\": \"246929\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"李恺杰\",\n \"userId\": \"272720\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"夏东翔\",\n \"userId\": \"103262\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"朱鸿\",\n \"userId\": \"024083\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"叶冬\",\n \"userId\": \"371817\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"任卿\",\n \"userId\": \"006792\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"彭家俊\",\n \"userId\": \"225893\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"刘蓓蓓\",\n \"userId\": \"074268\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王耀波\",\n \"userId\": \"220629\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"夏烈阳\",\n \"userId\": \"176371\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"魏玉科\",\n \"userId\": \"061331\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"张晨阳\",\n \"userId\": \"244717\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"李祎嵩\",\n \"userId\": \"238863\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"吕思霖\",\n \"userId\": \"193021\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"宋宜涛\",\n \"userId\": \"037168\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"李红军\",\n \"userId\": \"133206\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"沈运亮\",\n \"userId\": \"101595\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"桂明月\",\n \"userId\": \"077725\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"吴芳祥\",\n \"userId\": \"074360\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"赵召航\",\n \"userId\": \"044473\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"黄文奇\",\n \"userId\": \"270175\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"董金威\",\n \"userId\": \"085729\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"孙博文\",\n \"userId\": \"034766\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"朱通\",\n \"userId\": \"327979\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王帅军\",\n \"userId\": \"061731\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王海旭\",\n \"userId\": \"273048\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"欧阳德仁\",\n \"userId\": \"167272\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"冯汝伟\",\n \"userId\": \"124456\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"刘啸天\",\n \"userId\": \"314418\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"杨期\",\n \"userId\": \"028611\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"宋华青\",\n \"userId\": \"054469\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"俞福春\",\n \"userId\": \"424920\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"汤素文\",\n \"userId\": \"088045\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王摧\",\n \"userId\": \"141842\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王鸣霏\",\n \"userId\": \"184163\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王兵\",\n \"userId\": \"135976\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"周剑云\",\n \"userId\": \"164217\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"沈国勋\",\n \"userId\": \"026247\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"高阿娜\",\n \"userId\": \"001423\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"王森\",\n \"userId\": \"045981\"\n },\n {\n \"mainAdmin\": false,\n \"name\": \"林朋\",\n \"userId\": \"236891\"\n }\n ],\n \"approvalMode\": \"SELECT_APPROVER\",\n \"approvalSubmitted\": false,\n \"publishable\": false,\n \"published\": false,\n \"requiresApproval\": true,\n \"sensitive\": false,\n \"unifiedAppId\": \"678f27ec-4339-49d8-9c49-371b284bf552\",\n \"version\": \"1.0.0\",\n \"versionId\": \"4743accb-45e2-4bc9-8c96-74fc62ace2e8\",\n \"versionStatus\": \"INIT\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2081
},
{
"service": "devapp",
"command": "+version-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +version-get --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --version-id 4743accb-45e2-4bc9-8c96-74fc62ace2e8 --yes --format json",
"args": [
"devapp",
"+version-get",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--version-id",
"4743accb-45e2-4bc9-8c96-74fc62ace2e8",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"abilityList\": [],\n \"approvalMode\": \"SELECT_APPROVER\",\n \"description\": \"1.0.0\",\n \"enterpriseSelfBuiltAudit\": false,\n \"gmtCreate\": \"2026-03-06 10:43:01\",\n \"requiresApproval\": true,\n \"scopeList\": [\n \"qyapi_robot_sendmsg\",\n \"Card.Instance.Write\",\n \"Card.Streaming.Write\"\n ],\n \"sensitiveScopeList\": [],\n \"unifiedAppId\": \"678f27ec-4339-49d8-9c49-371b284bf552\",\n \"version\": \"1.0.0\",\n \"versionId\": \"4743accb-45e2-4bc9-8c96-74fc62ace2e8\",\n \"versionStatus\": \"INIT\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1738
},
{
"service": "devapp",
"command": "+version-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +version-list --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --cursor '' --page-size 10 --yes --format json",
"args": [
"devapp",
"+version-list",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--cursor",
"",
"--page-size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 1,\n \"versions\": [\n {\n \"desc\": \"1.0.0\",\n \"gmtCreate\": 1772764981000,\n \"status\": \"INIT\",\n \"version\": \"1.0.0\",\n \"versionId\": \"4743accb-45e2-4bc9-8c96-74fc62ace2e8\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1349
},
{
"service": "devapp",
"command": "+version-status",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +version-status --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --version-id 4743accb-45e2-4bc9-8c96-74fc62ace2e8 --yes --format json",
"args": [
"devapp",
"+version-status",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--version-id",
"4743accb-45e2-4bc9-8c96-74fc62ace2e8",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"unifiedAppId\": \"678f27ec-4339-49d8-9c49-371b284bf552\",\n \"version\": \"1.0.0\",\n \"versionId\": \"4743accb-45e2-4bc9-8c96-74fc62ace2e8\",\n \"versionStatus\": \"INIT\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2272
},
{
"service": "devapp",
"command": "+webapp-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test devapp +webapp-get --unified-app-id 678f27ec-4339-49d8-9c49-371b284bf552 --yes --format json",
"args": [
"devapp",
"+webapp-get",
"--unified-app-id",
"678f27ec-4339-49d8-9c49-371b284bf552",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"configured\": false,\n \"message\": \"未配置网页应用入口,请使用 webapp config 设置 homepageUrl、pcHomepageUrl 或 ompUrl。\",\n \"unifiedAppId\": \"678f27ec-4339-49d8-9c49-371b284bf552\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1576
},
{
"service": "ding",
"command": "+list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test ding +list --cursor 0 --type ALL --yes --format json",
"args": [
"ding",
"+list",
"--cursor",
"0",
"--type",
"ALL",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"dingMessages\": [\n {\n \"openDingId\": \"5D73E3AC29C780072D1CD56C6874ACC2\",\n \"sendTime\": \"2026-07-14 20:30:06\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"6DE6EC00AEBEF6839CA5F309371550DA\",\n \"sendTime\": \"2026-07-10 16:17:20\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"4DE0B0D90A94683CE1A9E12CBBB82883\",\n \"sendTime\": \"2026-07-10 12:38:47\",\n \"senderNick\": \"思敏\"\n },\n {\n \"openDingId\": \"B1CF538F2A3CAD8F78E863BCFF10E90F\",\n \"sendTime\": \"2026-07-10 11:47:07\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"72D79962A868374366AF4FCA6946D49F\",\n \"sendTime\": \"2026-07-10 11:44:27\",\n \"senderNick\": \"汀葻\"\n },\n {\n \"openDingId\": \"A290A8F6D35CC8E712E3E4C30D915263\",\n \"sendTime\": \"2026-07-10 11:10:52\",\n \"senderNick\": \"楠者\"\n },\n {\n \"openDingId\": \"7B7BA69E68F85A3948B70A1BD79C9DF2\",\n \"sendTime\": \"2026-07-09 20:43:36\",\n \"senderNick\": \"楠者\"\n },\n {\n \"openDingId\": \"0D59FF6F871900140BD65422184C410C\",\n \"sendTime\": \"2026-07-09 17:25:36\",\n \"senderNick\": \"楠者\"\n },\n {\n \"openDingId\": \"B6072FCC82D85A343EE7834A70293F09\",\n \"sendTime\": \"2026-07-09 16:37:54\",\n \"senderNick\": \"王玮(哈瑞)\"\n },\n {\n \"openDingId\": \"91DFBF0D54B7A0DCC8F7EAF58560586C\",\n \"sendTime\": \"2026-07-09 15:17:19\",\n \"senderNick\": \"楠者\"\n },\n {\n \"openDingId\": \"EA1F2A52C13954855A3D0D7A32A973F6\",\n \"sendTime\": \"2026-07-09 11:52:15\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"340C8FD58735886D44B5EA46921F8AAD\",\n \"sendTime\": \"2026-07-07 11:48:58\",\n \"senderNick\": \"穆伦\"\n },\n {\n \"openDingId\": \"A389AD2799303C13C15BB6EF014D3B39\",\n \"sendTime\": \"2026-07-07 11:34:34\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"A26385411682C6C5042D775B25DA8F08\",\n \"sendTime\": \"2026-07-06 11:37:05\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"C42A8B86D5453197F79645460E0B7A99\",\n \"sendTime\": \"2026-07-03 17:41:43\",\n \"senderNick\": \"楠者\"\n },\n {\n \"openDingId\": \"5AEF5D3CF756F23345F86FF5E7544E73\",\n \"sendTime\": \"2026-07-03 15:40:52\",\n \"senderNick\": \"楠者\"\n },\n {\n \"openDingId\": \"EA0E39C793A943797EEDEA9B00740A72\",\n \"sendTime\": \"2026-07-03 14:40:23\",\n \"senderNick\": \"粤腾\"\n },\n {\n \"openDingId\": \"753EC85C1FA6E50D82EB5C19940F340E\",\n \"sendTime\": \"2026-07-02 20:26:38\",\n \"senderNick\": \"思敏\"\n },\n {\n \"openDingId\": \"782B702452A410EC6D30ADC9D4E95FDB\",\n \"sendTime\": \"2026-07-02 09:49:45\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"983C2C5A65CAE1A86D8C6BC272E73D11\",\n \"sendTime\": \"2026-07-02 09:48:09\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"40B84F9DF18DE299C2B2D712E7D01114\",\n \"sendTime\": \"2026-06-29 17:59:37\",\n \"senderNick\": \"穆伦\"\n },\n {\n \"openDingId\": \"F799B63D8EDDB7915C80159BD355704F\",\n \"sendTime\": \"2026-06-25 19:53:17\",\n \"senderNick\": \"文靖\"\n },\n {\n \"openDingId\": \"33C1238264ACA098634569396F60EE7A\",\n \"sendTime\": \"2026-06-25 18:10:19\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"2A05EE1E37F7EB023C3146819156E9A8\",\n \"sendTime\": \"2026-06-25 11:49:24\",\n \"senderNick\": \"穆伦\"\n },\n {\n \"openDingId\": \"29FBFA46D6F07ED25378F2871E24A1DC\",\n \"sendTime\": \"2026-06-24 12:00:32\",\n \"senderNick\": \"云欢\"\n },\n {\n \"openDingId\": \"2CE4C4F3EE8C332884FA1673C064921C\",\n \"sendTime\": \"2026-06-22 20:47:14\",\n \"senderNick\": \"黎常\"\n },\n {\n \"openDingId\": \"8A2B1A1F7E508B2F08A52FEDD9365843\",\n \"sendTime\": \"2026-06-18 13:41:19\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"7F7671C7853D88C92DE6EE0A671CB57B\",\n \"sendTime\": \"2026-06-17 10:52:34\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"9539E8D27A51F204197E326F94650279\",\n \"sendTime\": \"2026-06-16 11:50:18\",\n \"senderNick\": \"穆伦\"\n },\n {\n \"openDingId\": \"DE9E8FAFC8125BC715B999AC4267E2CA\",\n \"sendTime\": \"2026-06-15 21:35:40\",\n \"senderNick\": \"西渐(主用钉)\"\n },\n {\n \"openDingId\": \"A5D83E673DC5A97F38D95F3E135C7824\",\n \"sendTime\": \"2026-06-12 22:08:36\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"5360613B1FC2389E8435CFABC57CC012\",\n \"sendTime\": \"2026-06-12 13:51:21\",\n \"senderNick\": \"鱼非\"\n },\n {\n \"openDingId\": \"3AB6395324A62CB2B4B513D0A02F67FA\",\n \"sendTime\": \"2026-06-11 11:23:39\",\n \"senderNick\": \"徐潇扬\"\n },\n {\n \"openDingId\": \"FB9FB2808D6ADF7464F5F1ACBA8A6704\",\n \"sendTime\": \"2026-06-11 09:51:55\",\n \"senderNick\": \"徐潇扬\"\n },\n {\n \"openDingId\": \"4D094E702716D4A46015CDC12B8F216B\",\n \"sendTime\": \"2026-06-10 22:04:05\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"74E2B3EB36EE99E6D88744F6B2C4C265\",\n \"sendTime\": \"2026-06-10 18:14:48\",\n \"senderNick\": \"古榕\"\n },\n {\n \"openDingId\": \"CAEF5614C47B65CDF10AED44BDFC7D9F\",\n \"sendTime\": \"2026-06-10 16:02:42\",\n \"senderNick\": \"徐潇扬\"\n },\n {\n \"openDingId\": \"F2C3A0F51AC502E84AECB932C227AAED\",\n \"sendTime\": \"2026-06-09 17:43:20\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"8AB2C3B891D931D8D650D41CA6205BCE\",\n \"sendTime\": \"2026-06-09 15:50:23\",\n \"senderNick\": \"可菡\"\n },\n {\n \"openDingId\": \"0456CE6A50FD2902B68D772DA37A96BC\",\n \"sendTime\": \"2026-06-09 09:45:43\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"6CB0E9E1D2CC344CB9217C97550BC6C6\",\n \"sendTime\": \"2026-06-08 21:42:37\",\n \"senderNick\": \"林弈\"\n },\n {\n \"openDingId\": \"0DEFB0942003A059C230BE1D262CAC8C\",\n \"sendTime\": \"2026-06-08 21:27:39\",\n \"senderNick\": \"林弈\"\n },\n {\n \"openDingId\": \"6B600C709E7468700F208B5DBB7ED888\",\n \"sendTime\": \"2026-06-08 15:42:05\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"B3502CC153C09A27AADE63A0BDF94C4A\",\n \"sendTime\": \"2026-06-05 17:38:44\",\n \"senderNick\": \"慧德\"\n },\n {\n \"openDingId\": \"07EC05F3E019605304D3C8216C6F7A32\",\n \"sendTime\": \"2026-06-05 17:19:52\",\n \"senderNick\": \"弈宇(Alpha)\"\n },\n {\n \"openDingId\": \"1C25016699ADE6DE66C6C9ECAE8C83B2\",\n \"sendTime\": \"2026-06-05 14:46:54\",\n \"senderNick\": \"弈宇(Alpha)\"\n },\n {\n \"openDingId\": \"AF79C95530607985A95866F7DE45F45E\",\n \"sendTime\": \"2026-06-05 14:39:48\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"4BFEE560E26AA24C1966A4D6EB722B89\",\n \"sendTime\": \"2026-06-05 09:28:42\",\n \"senderNick\": \"慧德\"\n },\n {\n \"openDingId\": \"B7F170045D3C6CC9D37DE356276BF084\",\n \"sendTime\": \"2026-06-04 23:07:57\",\n \"senderNick\": \"念晨\"\n },\n {\n \"openDingId\": \"A04A3D9659BD8FBDCF0C5E28EB2314F7\",\n \"sendTime\": \"2026-06-04 17:30:21\",\n \"senderNick\": \"念晨\"\n }\n ],\n \"hasMore\": true,\n \"nextCursor\": 1780565411433\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1459
},
{
"service": "doc",
"command": "+comment-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +comment-list --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --limit 10 --type global --yes --format json",
"args": [
"doc",
"+comment-list",
"--node",
"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO",
"--limit",
"10",
"--type",
"global",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"commentList\": [\n {\n \"commentKey\": \"1784082136009b316ba6c48ad41ad92a8b6905406a17c\",\n \"content\": \"DWS shortcut 真实测试 20260715:验证 doc +comment-create,可忽略。\",\n \"createTime\": 1784082136009,\n \"isGlobal\": true,\n \"isSolved\": false,\n \"quote\": null,\n \"updateTime\": 1784082136009\n },\n {\n \"commentKey\": \"1784082170012979f5c547f7a49e88a6c1dd718bbb304\",\n \"content\": \"DWS shortcut 真实测试 20260715:验证 doc +comment-reply,可忽略。\",\n \"createTime\": 1784082170012,\n \"isGlobal\": true,\n \"isSolved\": false,\n \"quote\": null,\n \"updateTime\": 1784082170012\n }\n ],\n \"hasMore\": false,\n \"logId\": \"213ee25c17840994077796280e0923\",\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2579
},
{
"service": "doc",
"command": "+export-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +export-get --job-id 29346731713 --yes --format json",
"args": [
"doc",
"+export-get",
"--job-id",
"29346731713",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"downloadUrl\": \"[REDACTED_OSS_URL]\",\n \"jobId\": \"29346731713\",\n \"logId\": \"2132f5ca17840994092582121e08d9\",\n \"message\": \"Export job completed. The file is ready for download via the downloadUrl.\",\n \"status\": \"success\",\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1379
},
{
"service": "doc",
"command": "+export-submit",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +export-submit --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --export-format docx --yes --format json",
"args": [
"doc",
"+export-submit",
"--node",
"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO",
"--export-format",
"docx",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"jobId\": \"29346731713\",\n \"logId\": \"2132f5ca17840994104887005e08d8\",\n \"message\": \"Export job submitted successfully. Use query_export_job with jobId '29346731713' to check the export status and get the download link.\",\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1573
},
{
"service": "doc",
"command": "+find-doc",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +find-doc --query '测试' --limit 10 --yes --format json",
"args": [
"doc",
"+find-doc",
"--query",
"测试",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 10,\n \"documents\": [\n {\n \"title\": \"DWS shortcut 真实测试文档 20260715\",\n \"token\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO?utm_scene=person_space\"\n },\n {\n \"title\": \"🧪测试 工作区目录扫描 - 2026-04-27 21:27:03\",\n \"token\": \"yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r?utm_scene=person_space\"\n },\n {\n \"title\": \"文件扫描测试 -20260414\",\n \"token\": \"3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm?utm_scene=person_space\"\n },\n {\n \"title\": \"文件扫描测试(25)\",\n \"token\": \"QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N?utm_scene=person_space\"\n },\n {\n \"title\": \"文件扫描测试(5)\",\n \"token\": \"Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq?utm_scene=person_space\"\n },\n {\n \"title\": \"文件扫描测试(24)\",\n \"token\": \"OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4?utm_scene=person_space\"\n },\n {\n \"title\": \"文件扫描测试(22)\",\n \"token\": \"OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4?utm_scene=person_space\"\n },\n {\n \"title\": \"文件扫描测试(26)(2)\",\n \"token\": \"l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4?utm_scene=person_space\"\n },\n {\n \"title\": \"悟空DWS全部测试账号信息\",\n \"token\": \"X6GRezwJlYxMoDeBsQkxqNQ38dqbropQ\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/X6GRezwJlYxMoDeBsQkxqNQ38dqbropQ?utm_scene=team_space\"\n },\n {\n \"title\": \"测试\",\n \"token\": \"1OQX0akWmBejogd0TvQ7oN4oVGlDd3mE\",\n \"type\": \"\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/1OQX0akWmBejogd0TvQ7oN4oVGlDd3mE?utm_scene=team_space\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2146
},
{
"service": "doc",
"command": "+list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +list --folder Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ --limit 10 --yes --format json",
"args": [
"doc",
"+list",
"--folder",
"Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 10,\n \"nodes\": [\n {\n \"name\": \"DWS shortcut 真实测试文档 20260715(2)\",\n \"nodeId\": \"np9zOoBVBy2AdzEjuP40bzg4W1DK0g6l\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/np9zOoBVBy2AdzEjuP40bzg4W1DK0g6l?utm_scene=person_space\"\n },\n {\n \"name\": \"DWS shortcut 真实测试文档 20260715\",\n \"nodeId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO?utm_scene=person_space\"\n },\n {\n \"name\": \"DWS shortcut 真实测试文档 20260715(1)\",\n \"nodeId\": \"7dx2rn0Jbakrq9O5tZvQ1bG9VMGjLRb3\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/7dx2rn0Jbakrq9O5tZvQ1bG9VMGjLRb3?utm_scene=person_space\"\n },\n {\n \"name\": \"知识库对接调研问卷-供各业务系统填写\",\n \"nodeId\": \"R4GpnMqJzOP0oLp6skZ0Kmvp8Ke0xjE3\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/R4GpnMqJzOP0oLp6skZ0Kmvp8Ke0xjE3?utm_scene=person_space\"\n },\n {\n \"name\": \"无标题文档(2)\",\n \"nodeId\": \"X6GRezwJlYxMoDeBsgX95gYj8dqbropQ\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/X6GRezwJlYxMoDeBsgX95gYj8dqbropQ?utm_scene=person_space\"\n },\n {\n \"name\": \"hi\",\n \"nodeId\": \"1zknDm0WRz0NZeXQu01lGOdmWBQEx5rG\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/1zknDm0WRz0NZeXQu01lGOdmWBQEx5rG?utm_scene=person_space\"\n },\n {\n \"name\": \"T(2)\",\n \"nodeId\": \"dxXB52LJqwZrolvyFKLy25D9WqjMp697\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/dxXB52LJqwZrolvyFKLy25D9WqjMp697?utm_scene=person_space\"\n },\n {\n \"name\": \"T(1)\",\n \"nodeId\": \"mweZ92PV6O36dZbnsML6RyaAJxEKBD6p\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/mweZ92PV6O36dZbnsML6RyaAJxEKBD6p?utm_scene=person_space\"\n },\n {\n \"name\": \"T\",\n \"nodeId\": \"4lgGw3P8vwYmoljyFg90Z2X9W5daZ90D\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/4lgGw3P8vwYmoljyFg90Z2X9W5daZ90D?utm_scene=person_space\"\n },\n {\n \"name\": \"念晨与hugozhu的会话 2026年06月22日\",\n \"nodeId\": \"GZLxjv9VGGDA9Ro2u6yKZ7BxV6EDybno\",\n \"nodeType\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/GZLxjv9VGGDA9Ro2u6yKZ7BxV6EDybno?utm_scene=person_space\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2075
},
{
"service": "doc",
"command": "+search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +search --query '测试' --limit 10 --cursor 0 --yes --format json",
"args": [
"doc",
"+search",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 10,\n \"documents\": [\n {\n \"docType\": \"adoc\",\n \"modifiedTime\": null,\n \"name\": \"DWS shortcut 真实测试文档 20260715\",\n \"nodeId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"🧪测试 工作区目录扫描 - 2026-04-27 21:27:03\",\n \"nodeId\": \"yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"文件扫描测试 -20260414\",\n \"nodeId\": \"3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"文件扫描测试(25)\",\n \"nodeId\": \"QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"文件扫描测试(5)\",\n \"nodeId\": \"Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"文件扫描测试(24)\",\n \"nodeId\": \"OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"文件扫描测试(22)\",\n \"nodeId\": \"OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4?utm_scene=person_space\"\n },\n {\n \"docType\": \"able\",\n \"modifiedTime\": null,\n \"name\": \"文件扫描测试(26)(2)\",\n \"nodeId\": \"l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4?utm_scene=person_space\"\n },\n {\n \"docType\": \"adoc\",\n \"modifiedTime\": null,\n \"name\": \"悟空DWS全部测试账号信息\",\n \"nodeId\": \"X6GRezwJlYxMoDeBsQkxqNQ38dqbropQ\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/X6GRezwJlYxMoDeBsQkxqNQ38dqbropQ?utm_scene=team_space\"\n },\n {\n \"docType\": \"folder\",\n \"modifiedTime\": null,\n \"name\": \"测试\",\n \"nodeId\": \"1OQX0akWmBejogd0TvQ7oN4oVGlDd3mE\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/1OQX0akWmBejogd0TvQ7oN4oVGlDd3mE?utm_scene=team_space\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1911
},
{
"service": "doc",
"command": "+template-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +template-list --source MY --limit 10 --cursor 0 --yes --format json",
"args": [
"doc",
"+template-list",
"--source",
"MY",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"hasMore\": false,\n \"logId\": \"213ee25c17840994183018652e08e2\",\n \"message\": \"成功获取 3 个模版。\",\n \"success\": true,\n \"templates\": [\n {\n \"coverUrl\": \"[REDACTED_OSS_URL]\",\n \"description\": null,\n \"templateId\": \"494040872345\",\n \"title\": \"接口定义模版v1.0\",\n \"usedCount\": null\n },\n {\n \"coverUrl\": \"[REDACTED_OSS_URL]\",\n \"description\": null,\n \"templateId\": \"494801282345\",\n \"title\": \"接口定义与描述模版\",\n \"usedCount\": null\n },\n {\n \"coverUrl\": \"[REDACTED_OSS_URL]\",\n \"description\": null,\n \"templateId\": \"111001402345\",\n \"title\": \"2023届钉钉音视频春招海报\",\n \"usedCount\": null\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1370
},
{
"service": "doc",
"command": "+template-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +template-search --query '测试' --source MY --limit 10 --cursor 0 --yes --format json",
"args": [
"doc",
"+template-search",
"--query",
"测试",
"--source",
"MY",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"hasMore\": false,\n \"logId\": \"213ee25c17840994199004331e08a0\",\n \"message\": \"未找到与「测试」相关的模版,请尝试其他关键词。\",\n \"success\": true,\n \"templates\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1576
},
{
"service": "doc",
"command": "+version-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test doc +version-list --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --limit 10 --cursor 0 --yes --format json",
"args": [
"doc",
"+version-list",
"--node",
"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"hasMore\": false,\n \"success\": true,\n \"versions\": [\n {\n \"createTime\": \"2026-07-15T10:21:47+08:00\",\n \"type\": \"AUTO_SAVE\",\n \"updateTime\": \"2026-07-15T10:21:47+08:00\",\n \"userId\": \"202397\",\n \"version\": 0\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2069
},
{
"service": "drive",
"command": "+find-file",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test drive +find-file --query '测试' --yes --format json",
"args": [
"drive",
"+find-file",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"files\": [\n {\n \"dentryId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"fileSize\": 0,\n \"name\": \"DWS shortcut 真实测试文档 20260715\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r\",\n \"fileSize\": 0,\n \"name\": \"🧪测试 工作区目录扫描 - 2026-04-27 21:27:03\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm\",\n \"fileSize\": 0,\n \"name\": \"文件扫描测试 -20260414\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N\",\n \"fileSize\": 0,\n \"name\": \"文件扫描测试(25)\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq\",\n \"fileSize\": 0,\n \"name\": \"文件扫描测试(5)\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4\",\n \"fileSize\": 0,\n \"name\": \"文件扫描测试(24)\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4\",\n \"fileSize\": 0,\n \"name\": \"文件扫描测试(22)\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4\",\n \"fileSize\": 0,\n \"name\": \"文件扫描测试(26)(2)\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"np9zOoBVBy2AdzEjuP40bzg4W1DK0g6l\",\n \"fileSize\": 0,\n \"name\": \"DWS shortcut 真实测试文档 20260715(2)\",\n \"type\": \"ALIDOC\"\n },\n {\n \"dentryId\": \"7dx2rn0Jbakrq9O5tZvQ1bG9VMGjLRb3\",\n \"fileSize\": 0,\n \"name\": \"DWS shortcut 真实测试文档 20260715(1)\",\n \"type\": \"ALIDOC\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1913
},
{
"service": "drive",
"command": "+info",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test drive +info --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --space-id 1 --yes --format json",
"args": [
"drive",
"+info",
"--node",
"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO",
"--space-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"createTime\": 1784082107000,\n \"dentryId\": \"228840832141\",\n \"docUrl\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"extension\": \"adoc\",\n \"fileId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"fileSize\": 0,\n \"message\": \"该文件属于钉钉文档(在线文档/表格/脑图等),通过钉盘接口获取的元数据(如文件名称)可能不准确。建议使用钉钉文档相关接口获取更准确的文档信息。\",\n \"modifyTime\": 1784082137000,\n \"name\": \"7691256802.adoc\",\n \"path\": \"/6342122716/7691256801/7691256802.adoc\",\n \"status\": \"NORMAL\",\n \"type\": \"ALIDOC\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2605
},
{
"service": "drive",
"command": "+recent",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test drive +recent --operate-type 1 --creator-type 1 --limit 10 --cursor 0 --yes --format json",
"args": [
"drive",
"+recent",
"--operate-type",
"1",
"--creator-type",
"1",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"hasMore\": false,\n \"items\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2087
},
{
"service": "drive",
"command": "+search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test drive +search --query '测试' --target file --file-types alidoc --extensions x --creator-uids x --created-from 1 --created-to 1 --modified-from 1 --modified-to 1 --limit 10 --cursor 0 --yes --format json",
"args": [
"drive",
"+search",
"--query",
"测试",
"--target",
"file",
"--file-types",
"alidoc",
"--extensions",
"x",
"--creator-uids",
"x",
"--created-from",
"1",
"--created-to",
"1",
"--modified-from",
"1",
"--modified-to",
"1",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"files\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2091
},
{
"service": "drive",
"command": "+search-docs",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test drive +search-docs --query '测试' --limit 10 --yes --format json",
"args": [
"drive",
"+search-docs",
"--query",
"测试",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 10,\n \"docs\": [\n {\n \"name\": \"DWS shortcut 真实测试文档 20260715\",\n \"nodeId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO?utm_scene=person_space\"\n },\n {\n \"name\": \"🧪测试 工作区目录扫描 - 2026-04-27 21:27:03\",\n \"nodeId\": \"yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/yQod3RxJKQz4jm9xS4kw7dnmWkb4Mw9r?utm_scene=person_space\"\n },\n {\n \"name\": \"文件扫描测试 -20260414\",\n \"nodeId\": \"3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/3NwLYZXWyrmRolXLcZ7QaMDkVkyEqBQm?utm_scene=person_space\"\n },\n {\n \"name\": \"文件扫描测试(25)\",\n \"nodeId\": \"QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/QPGYqjpJYRyab0nxsZ7a9L5R8akx1Z5N?utm_scene=person_space\"\n },\n {\n \"name\": \"文件扫描测试(5)\",\n \"nodeId\": \"Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/Exel2BLV5gOAdXr1umNwXGBA8gk9rpMq?utm_scene=person_space\"\n },\n {\n \"name\": \"文件扫描测试(24)\",\n \"nodeId\": \"OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPL7M2ONQSzqYlPzmJzN67Mw4?utm_scene=person_space\"\n },\n {\n \"name\": \"文件扫描测试(22)\",\n \"nodeId\": \"OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/OG9lyrgJPL7M2ONQSzQ4k0bRJzN67Mw4?utm_scene=person_space\"\n },\n {\n \"name\": \"文件扫描测试(26)(2)\",\n \"nodeId\": \"l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/l6Pm2Db8DQyAKmGkS90GX4ndWxLq0Ee4?utm_scene=person_space\"\n },\n {\n \"name\": \"悟空DWS全部测试账号信息\",\n \"nodeId\": \"X6GRezwJlYxMoDeBsQkxqNQ38dqbropQ\",\n \"type\": \"file\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/X6GRezwJlYxMoDeBsQkxqNQ38dqbropQ?utm_scene=team_space\"\n },\n {\n \"name\": \"测试\",\n \"nodeId\": \"1OQX0akWmBejogd0TvQ7oN4oVGlDd3mE\",\n \"type\": \"folder\",\n \"url\": \"https://alidocs.dingtalk.com/i/nodes/1OQX0akWmBejogd0TvQ7oN4oVGlDd3mE?utm_scene=team_space\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2507
},
{
"service": "mail",
"command": "+contact-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +contact-list --email xinyang.dxy@alibaba-inc.com --limit 10 --cursor '' --yes --format json",
"args": [
"mail",
"+contact-list",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--limit",
"10",
"--cursor",
"",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"contacts\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3284
},
{
"service": "mail",
"command": "+find-mail-user",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +find-mail-user --query '董鑫阳' --limit 10 --yes --format json",
"args": [
"mail",
"+find-mail-user",
"--query",
"董鑫阳",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 1,\n \"users\": [\n {\n \"email\": \"xinyang.dxy@alibaba-inc.com\",\n \"employeeNo\": \"202397\",\n \"id\": \"----.l------oBfPl:0:----HI-----HWk9nI\",\n \"jobTitle\": \"\",\n \"name\": \"董鑫阳\",\n \"nickname\": \"念晨\",\n \"workLocation\": \"浙江-杭州\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3666
},
{
"service": "mail",
"command": "+folder-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +folder-list --email xinyang.dxy@alibaba-inc.com --folder 2 --yes --format json",
"args": [
"mail",
"+folder-list",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--folder",
"2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"folders\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3643
},
{
"service": "mail",
"command": "+recent-mail",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +recent-mail --limit 10 --email xinyang.dxy@alibaba-inc.com --folder 2 --yes --format json",
"args": [
"mail",
"+recent-mail",
"--limit",
"10",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--folder",
"2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 10,\n \"mails\": [\n {\n \"date\": \"2026-07-15T06:37:28Z\",\n \"from\": [\n \"work@alibaba-inc.com\"\n ],\n \"subject\": \"牛康佳(随风)的数据权限申请流程 / NIU, Kangjia's apply data permission \",\n \"threadId\": \"DzzzzyJeBJL---.iLmnRnm\"\n },\n {\n \"date\": \"2026-07-15T06:35:49Z\",\n \"from\": [\n \"work@alibaba-inc.com\"\n ],\n \"subject\": \"changefree:diamond应用【albert-agent-2】变更 \",\n \"threadId\": \"DzzzzyJo3ZK---.hyYf9dO\"\n },\n {\n \"date\": \"2026-07-15T06:00:39Z\",\n \"from\": [\n \"安全服务中心 <snotice@alibaba-inc.com>\"\n ],\n \"subject\": \"您的名下有1个风险尚未修复,请立即修复! You have 1 vulnerabilities that have not been fixed, please fix them as soon as possible!\",\n \"threadId\": \"DzzzzyKaAwA---.g643XXa\"\n },\n {\n \"date\": \"2026-07-15T05:48:41Z\",\n \"from\": [\n \"aone@alibaba-inc.com <aone@alibaba-inc.com>\"\n ],\n \"subject\": \"[Aone]应用albert-agent-2预发发布成功\",\n \"threadId\": \"DzzzzyJi7OS---.iCFAI0A\"\n },\n {\n \"date\": \"2026-07-15T02:54:00Z\",\n \"from\": [\n \"work@alibaba-inc.com\"\n ],\n \"subject\": \"代成俊(璟琦)的数据权限申请流程 / DAI, Chengjun's apply data permission \",\n \"threadId\": \"DzzzzyKTIMD---.gOEBekI\"\n },\n {\n \"date\": \"2026-07-15T02:51:12Z\",\n \"from\": [\n \"work@alibaba-inc.com\"\n ],\n \"subject\": \"陈梦媛(星莫)的数据权限申请流程 / CHEN, Mengyuan's apply data permission \",\n \"threadId\": \"DzzzzyKIHke---.goV93L.\"\n },\n {\n \"date\": \"2026-07-15T02:06:21Z\",\n \"from\": [\n \"dingtalk_recruitment@alibaba-inc.com\"\n ],\n \"subject\": \"【校招】简历即将超期/[Campus Recruitment] Resumes Are About to Expire\",\n \"threadId\": \"DzzzzyJjBhI---.i911RPE\"\n },\n {\n \"date\": \"2026-07-15T02:00:05Z\",\n \"from\": [\n \"dingtalk_recruitment@alibaba-inc.com\"\n ],\n \"subject\": \"【校招】2026-07-15 面试邀约任务通知/【Campus Recruitment】 2026-07-15 Interview Invitation Task Notice\",\n \"threadId\": \"DzzzzyJeFNO---.iLVkwOD\"\n },\n {\n \"date\": \"2026-07-15T01:42:44Z\",\n \"from\": [\n \"ATA技小蜜 <ATA@alibaba-inc.com>\"\n ],\n \"subject\": \"【ATA每日精选】【天猫数字分身】(上篇) - AI Native 组织协作与研发的暗物质\",\n \"threadId\": \"DzzzzyJeFdf---.iLWDlI4\"\n },\n {\n \"date\": \"2026-07-14T18:24:45Z\",\n \"from\": [\n \"postmaster@alibaba-inc.com\"\n ],\n \"subject\": \"垃圾邮件提醒2026年7月15日\",\n \"threadId\": \"DzzzzyJeM2G---.iLDMDRq\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2724
},
{
"service": "mail",
"command": "+search-mail",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +search-mail --query 'subject:测试' --email xinyang.dxy@alibaba-inc.com --size 10 --yes --format json",
"args": [
"mail",
"+search-mail",
"--query",
"subject:测试",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"email\": \"xinyang.dxy@alibaba-inc.com\",\n \"messages\": [\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNklS\",\n \"subject\": \"[Aone]实验室[lippi-calladmin单元测试]的构建[#1723]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkml\",\n \"subject\": \"[Aone]实验室[mozi-engine-admin单元测试-Jacoco]的构建[#2611]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNknb\",\n \"subject\": \"[Aone]实验室[lippi-calladmin单元测试]的构建[#1646]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkoy\",\n \"subject\": \"[Aone]实验室[mozi-engine-admin单元测试-Jacoco]的构建[#2609]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkp.\",\n \"subject\": \"[Aone]实验室[mozi-channel-admin-单元测试]的构建[#1498]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkp0\",\n \"subject\": \"[Aone]实验室[mozi-channel-admin-单元测试]的构建[#1497]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkpJ\",\n \"subject\": \"[Aone]实验室[mozi-channel-admin-单元测试]的构建[#1493]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkpL\",\n \"subject\": \"[Aone]实验室[mozi-channel-admin-单元测试]的构建[#1492]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkph\",\n \"subject\": \"[Aone]实验室[mozi-channel-admin-单元测试]的构建[#1491]失败\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkpj\",\n \"subject\": \"[Aone]实验室[mozi-channel-admin-单元测试]的构建[#1490]失败\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1985
},
{
"service": "mail",
"command": "+tag-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +tag-list --email xinyang.dxy@alibaba-inc.com --yes --format json",
"args": [
"mail",
"+tag-list",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 3,\n \"tags\": [\n {\n \"id\": \"1\",\n \"name\": \"Flagged\",\n \"parentId\": \"0\"\n },\n {\n \"id\": \"2\",\n \"name\": \"Completed\",\n \"parentId\": \"0\"\n },\n {\n \"id\": \"3\",\n \"name\": \"task\",\n \"parentId\": \"0\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2606
},
{
"service": "mail",
"command": "+template-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +template-list --email xinyang.dxy@alibaba-inc.com --limit 10 --cursor '' --yes --format json",
"args": [
"mail",
"+template-list",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--limit",
"10",
"--cursor",
"",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"templates\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3083
},
{
"service": "mail",
"command": "+thread-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +thread-list --email xinyang.dxy@alibaba-inc.com --folder 2 --limit 10 --cursor '' --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --ascending --yes --format json",
"args": [
"mail",
"+thread-list",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--folder",
"2",
"--limit",
"10",
"--cursor",
"",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--ascending",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"threads\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 6434
},
{
"service": "mail",
"command": "+unread-mail",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +unread-mail --email xinyang.dxy@alibaba-inc.com --size 10 --yes --format json",
"args": [
"mail",
"+unread-mail",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"email\": \"xinyang.dxy@alibaba-inc.com\",\n \"messages\": [\n {\n \"date\": null,\n \"from\": \"work@alibaba-inc.com\",\n \"messageId\": \"DzzzzzzNkk0\",\n \"subject\": \"牛康佳(随风)的数据权限申请流程 / NIU, Kangjia's apply data permission \"\n },\n {\n \"date\": null,\n \"from\": \"work@alibaba-inc.com\",\n \"messageId\": \"DzzzzzzNkk1\",\n \"subject\": \"changefree:diamond应用【albert-agent-2】变更 \"\n },\n {\n \"date\": null,\n \"from\": \"安全服务中心 <snotice@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkk2\",\n \"subject\": \"您的名下有1个风险尚未修复,请立即修复! You have 1 vulnerabilities that have not been fixed, please fix them as soon as possible!\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkk3\",\n \"subject\": \"[Aone]应用albert-agent-2预发发布成功\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkk4\",\n \"subject\": \"[Aone]应用albert-agent-2预发发布成功\"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkk5\",\n \"subject\": \"[Aone]应用albert-agent-2预发发布成功\"\n },\n {\n \"date\": null,\n \"from\": \"work@alibaba-inc.com\",\n \"messageId\": \"DzzzzzzNkk6\",\n \"subject\": \"代成俊(璟琦)的数据权限申请流程 / DAI, Chengjun's apply data permission \"\n },\n {\n \"date\": null,\n \"from\": \"work@alibaba-inc.com\",\n \"messageId\": \"DzzzzzzNkk7\",\n \"subject\": \"陈梦媛(星莫)的数据权限申请流程 / CHEN, Mengyuan's apply data permission \"\n },\n {\n \"date\": null,\n \"from\": \"aone@alibaba-inc.com <aone@alibaba-inc.com>\",\n \"messageId\": \"DzzzzzzNkk8\",\n \"subject\": \"[Aone]应用albert-agent-2预发发布成功\"\n },\n {\n \"date\": null,\n \"from\": \"dingtalk_recruitment@alibaba-inc.com\",\n \"messageId\": \"DzzzzzzNkk9\",\n \"subject\": \"【校招】简历即将超期/[Campus Recruitment] Resumes Are About to Expire\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3469
},
{
"service": "mail",
"command": "+user-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test mail +user-search --keyword '董鑫阳' --employee-no 202397 --email xinyang.dxy@alibaba-inc.com --cursor '' --limit 10 --yes --format json",
"args": [
"mail",
"+user-search",
"--keyword",
"董鑫阳",
"--employee-no",
"202397",
"--email",
"xinyang.dxy@alibaba-inc.com",
"--cursor",
"",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 1,\n \"users\": [\n {\n \"email\": \"xinyang.dxy@alibaba-inc.com\",\n \"employeeNo\": \"202397\",\n \"name\": \"董鑫阳\",\n \"userId\": \"----.l------oBfPl:0:----HI-----HWk9nI\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2836
},
{
"service": "minutes",
"command": "+detail",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test minutes +detail --id DWSREALREADNOSUCHID0000000000000 --artifacts basic --direction older --yes --format json",
"args": [
"minutes",
"+detail",
"--id",
"DWSREALREADNOSUCHID0000000000000",
"--artifacts",
"basic",
"--direction",
"older",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"basic\": {\n \"error\": \"[UNCLASSIFIED] taskUuid is invalid\\n hint: Use --verbose for detailed error logs\"\n },\n \"taskUuid\": \"DWSREALREADNOSUCHID0000000000000\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2608
},
{
"service": "minutes",
"command": "+list-all",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test minutes +list-all --query '测试' --limit 10 --cursor 0 --yes --format json",
"args": [
"minutes",
"+list-all",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"minutes\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 23790
},
{
"service": "minutes",
"command": "+list-mine",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test minutes +list-mine --query '测试' --limit 10 --cursor 0 --yes --format json",
"args": [
"minutes",
"+list-mine",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"minutes\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 27516
},
{
"service": "oa",
"command": "+list-cc",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +list-cc --page 1 --limit 10 --query '测试' --yes --format json",
"args": [
"oa",
"+list-cc",
"--page",
"1",
"--limit",
"10",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"instances\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 8468
},
{
"service": "oa",
"command": "+list-executed",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +list-executed --page 1 --limit 10 --query '测试' --yes --format json",
"args": [
"oa",
"+list-executed",
"--page",
"1",
"--limit",
"10",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"instances\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 29589
},
{
"service": "oa",
"command": "+list-forms",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +list-forms --cursor 0 --limit 10 --yes --format json",
"args": [
"oa",
"+list-forms",
"--cursor",
"0",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"forms\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 25611
},
{
"service": "oa",
"command": "+list-pending",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +list-pending --start 1783494851348 --end 1784099651348 --page 1 --limit 10 --query '测试' --yes --format json",
"args": [
"oa",
"+list-pending",
"--start",
"1783494851348",
"--end",
"1784099651348",
"--page",
"1",
"--limit",
"10",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"instances\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 8328
},
{
"service": "oa",
"command": "+list-submitted",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +list-submitted --page 1 --limit 10 --query '测试' --yes --format json",
"args": [
"oa",
"+list-submitted",
"--page",
"1",
"--limit",
"10",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"instances\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 12793
},
{
"service": "oa",
"command": "+my-initiated",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +my-initiated --query '测试' --page 1 --limit 10 --yes --format json",
"args": [
"oa",
"+my-initiated",
"--query",
"测试",
"--page",
"1",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"result\": {\n \"values\": []\n },\n \"success\": \"true\"\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3564
},
{
"service": "oa",
"command": "+search-forms",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test oa +search-forms --query '测试' --yes --format json",
"args": [
"oa",
"+search-forms",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"forms\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1759
},
{
"service": "report",
"command": "+inbox-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test report +inbox-list --start 2026-07-08T15:14:39+08:00 --end 2026-07-15T15:14:39+08:00 --cursor 0 --size 1 --sender-user-ids x --yes --format json",
"args": [
"report",
"+inbox-list",
"--start",
"2026-07-08T15:14:39+08:00",
"--end",
"2026-07-15T15:14:39+08:00",
"--cursor",
"0",
"--size",
"1",
"--sender-user-ids",
"x",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"reports\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2130
},
{
"service": "report",
"command": "+outbox-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test report +outbox-list --cursor 0 --size 1 --start 2026-07-08T15:14:41+08:00 --end 2026-07-15T15:14:41+08:00 --modified-start 2026-07-08T15:14:41+08:00 --modified-end 2026-07-15T15:14:41+08:00 --yes --format json",
"args": [
"report",
"+outbox-list",
"--cursor",
"0",
"--size",
"1",
"--start",
"2026-07-08T15:14:41+08:00",
"--end",
"2026-07-15T15:14:41+08:00",
"--modified-start",
"2026-07-08T15:14:41+08:00",
"--modified-end",
"2026-07-15T15:14:41+08:00",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"reports\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1584
},
{
"service": "sheet",
"command": "+read",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test sheet +read --node DWSREALREADNOSUCHID0000000000000 --sheet-id x --range x --value-render-option formatted_value --yes --format json",
"args": [
"sheet",
"+read",
"--node",
"DWSREALREADNOSUCHID0000000000000",
"--sheet-id",
"x",
"--range",
"x",
"--value-render-option",
"formatted_value",
"--yes",
"--format",
"json"
],
"stdout": "null",
"stderr": "",
"exit_code": 0,
"duration_ms": 1589
},
{
"service": "todo",
"command": "+created-todos",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +created-todos --yes --format json",
"args": [
"todo",
"+created-todos",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"created\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1733
},
{
"service": "todo",
"command": "+get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +get --task-id 55119034912 --yes --format json",
"args": [
"todo",
"+get",
"--task-id",
"55119034912",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"todoDetailModel\": {\n \"activities\": [\n {\n \"action\": \"task.self.done\",\n \"activityId\": \"14314572403\",\n \"creatorId\": 5255888716\n },\n {\n \"action\": \"task.create\",\n \"activityId\": \"14178655650\",\n \"creatorId\": 2669375904\n }\n ],\n \"bizTag\": \"tb_group_task\",\n \"createdTime\": 1784017216974,\n \"creatorId\": \"2669375904\",\n \"creatorInfo\": {\n \"name\": \"李龙\",\n \"nick\": \"粤腾\",\n \"userId\": 2669375904\n },\n \"detailUrl\": {\n \"appUrl\": \"https://n.dingtalk.com/dingding/dd-todo/detail/index.html?dd_darkmode=true\\u0026android_scroll=false\\u0026dd_mini_app_id=5000000004746689\\u0026dt_editor=true\\u0026dd_full_screen=true\\u0026showmenu=false\\u0026dd_progress=false\\u0026dd_amplify=false\\u0026newPage=true\\u0026at_iframe=1\\u0026from=homePage\\u0026taskId=55119034912\\u0026bizTag=tb_group_task\\u0026cid=75985350515#/detail\",\n \"pcUrl\": \"https://n.dingtalk.com/dingding/dd-todo/detail/index.html?dd_darkmode=true\\u0026android_scroll=false\\u0026dd_mini_app_id=5000000004746689\\u0026dt_editor=true\\u0026dd_full_screen=true\\u0026showmenu=false\\u0026dd_progress=false\\u0026dd_amplify=false\\u0026newPage=true\\u0026at_iframe=1\\u0026from=homePage\\u0026taskId=55119034912\\u0026bizTag=tb_group_task\\u0026cid=75985350515#/detail\"\n },\n \"dueTime\": 1784044740651,\n \"executorIds\": [\n \"41129894\",\n \"5255888716\",\n \"447869\",\n \"512653609\",\n \"2669375904\"\n ],\n \"executorInfos\": [\n {\n \"name\": \"梓寻\",\n \"nick\": \"梓寻\",\n \"userId\": 41129894\n },\n {\n \"name\": \"陈绪\",\n \"nick\": \"陈叙\",\n \"userId\": 5255888716\n },\n {\n \"name\": \"徐洪鑫\",\n \"nick\": \"崇幻\",\n \"userId\": 447869\n },\n {\n \"name\": \"董鑫阳\",\n \"nick\": \"念晨\",\n \"userId\": 512653609\n },\n {\n \"name\": \"李龙\",\n \"nick\": \"粤腾\",\n \"userId\": 2669375904\n }\n ],\n \"finishTime\": 0,\n \"isDone\": false,\n \"modifiedTime\": 1784017216974,\n \"modifierId\": \"2669375904\",\n \"orgId\": 439446171,\n \"participantIds\": [\n \"41129894\",\n \"5255888716\",\n \"447869\",\n \"512653609\",\n \"2669375904\"\n ],\n \"participantInfos\": [\n {\n \"name\": \"梓寻\",\n \"nick\": \"梓寻\",\n \"userId\": 41129894\n },\n {\n \"name\": \"陈绪\",\n \"nick\": \"陈叙\",\n \"userId\": 5255888716\n },\n {\n \"name\": \"徐洪鑫\",\n \"nick\": \"崇幻\",\n \"userId\": 447869\n },\n {\n \"name\": \"董鑫阳\",\n \"nick\": \"念晨\",\n \"userId\": 512653609\n },\n {\n \"name\": \"李龙\",\n \"nick\": \"粤腾\",\n \"userId\": 2669375904\n }\n ],\n \"priority\": 20,\n \"source\": \"conversation\",\n \"subject\": \"中控Ai营销各Agent蓝图场景故事动线输出1-2页PPT\",\n \"taskId\": \"55119034912\",\n \"tenantId\": \"75985350515\",\n \"tenantType\": \"group\"\n }\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3658
},
{
"service": "todo",
"command": "+get-my-tasks",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +get-my-tasks --page 1 --size 10 --status false --priority x --role-types executor --plan-finish-start 1 --plan-finish-end 1 --yes --format json",
"args": [
"todo",
"+get-my-tasks",
"--page",
"1",
"--size",
"10",
"--status",
"false",
"--priority",
"x",
"--role-types",
"executor",
"--plan-finish-start",
"1",
"--plan-finish-end",
"1",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"todos\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1475
},
{
"service": "todo",
"command": "+list-attachment",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +list-attachment --task-id 55119034912 --yes --format json",
"args": [
"todo",
"+list-attachment",
"--task-id",
"55119034912",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"attachments\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 3413
},
{
"service": "todo",
"command": "+list-comment",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +list-comment --task-id 55119034912 --page 1 --size 10 --yes --format json",
"args": [
"todo",
"+list-comment",
"--task-id",
"55119034912",
"--page",
"1",
"--size",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"comments\": [],\n \"count\": 0\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 2191
},
{
"service": "todo",
"command": "+list-sub",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +list-sub --task-id 55119034912 --yes --format json",
"args": [
"todo",
"+list-sub",
"--task-id",
"55119034912",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"subTasks\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1940
},
{
"service": "todo",
"command": "+overdue",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test todo +overdue --yes --format json",
"args": [
"todo",
"+overdue",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"overdue\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1240
},
{
"service": "wiki",
"command": "+space-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test wiki +space-search --query '测试' --limit 10 --yes --format json",
"args": [
"wiki",
"+space-search",
"--query",
"测试",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"spaces\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1951
},
{
"service": "aitable",
"command": "+base-get-primary-doc-id",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +base-get-primary-doc-id --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --record-id 1015oH3OXy --yes --format json",
"args": [
"aitable",
"+base-get-primary-doc-id",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--record-id",
"1015oH3OXy",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"-1\\\",\\\"message\\\":\\\"no record\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to query cell doc for record 1015oH3OXy in table hERWDMS\\\",\\\"trace_id\\\":\\\"0b5deb3217840997466255627e08ee\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1929,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。"
},
{
"service": "aitable",
"command": "+chart-share-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +chart-share-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --dashboard-id KY9tlWg5NEHgfs8WT6IO2 --chart-id widget-dlxFo0tNSImp4ITpDn5fQ --yes --format json",
"args": [
"aitable",
"+chart-share-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--dashboard-id",
"KY9tlWg5NEHgfs8WT6IO2",
"--chart-id",
"widget-dlxFo0tNSImp4ITpDn5fQ",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"403\\\",\\\"message\\\":\\\"Forbidden\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"AUTH_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to get chart share config for chart widget-dlxFo0tNSImp4ITpDn5fQ: [403] Forbidden\\\",\\\"trace_id\\\":\\\"2127d89817840997481396653e075d\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1584,
"failure_category": "auth-or-permission",
"fixability": "not-cli-fixable",
"diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。"
},
{
"service": "aitable",
"command": "+dashboard-share-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +dashboard-share-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --dashboard-id KY9tlWg5NEHgfs8WT6IO2 --yes --format json",
"args": [
"aitable",
"+dashboard-share-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--dashboard-id",
"KY9tlWg5NEHgfs8WT6IO2",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"404\\\",\\\"message\\\":\\\"Not Found\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to get dashboard share config for dashboard KY9tlWg5NEHgfs8WT6IO2\\\",\\\"trace_id\\\":\\\"0bb7c36217840997497315836e07fe\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1472,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "aitable",
"command": "+export-data",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +export-data --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --task-id DWSREALREADNOSUCHID0000000000000 --scope all --format excel --table-id hERWDMS --view-id qvGDAH2 --timeout-ms 1 --yes",
"args": [
"aitable",
"+export-data",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--task-id",
"DWSREALREADNOSUCHID0000000000000",
"--scope",
"all",
"--format",
"excel",
"--table-id",
"hERWDMS",
"--view-id",
"qvGDAH2",
"--timeout-ms",
"1",
"--yes"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMS\\\",\\\"message\\\":\\\"taskId cannot be combined with scope, format, tableId or viewId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to continue export because taskId mode cannot include create-task params\\\",\\\"trace_id\\\":\\\"2104a64c17840997514714448e0817\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1754,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。"
},
{
"service": "aitable",
"command": "+record-primary-doc-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +record-primary-doc-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --table-id hERWDMS --record-id 1015oH3OXy --yes --format json",
"args": [
"aitable",
"+record-primary-doc-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--table-id",
"hERWDMS",
"--record-id",
"1015oH3OXy",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"-1\\\",\\\"message\\\":\\\"no record\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to query cell doc for record 1015oH3OXy in table hERWDMS\\\",\\\"trace_id\\\":\\\"2127d89817840997528393730e079c\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1344,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。"
},
{
"service": "aitable",
"command": "+role-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +role-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --role-id x --yes --format json",
"args": [
"aitable",
"+role-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--role-id",
"x",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMS\\\",\\\"message\\\":\\\"roleId is required\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to get role because roleId is missing\\\",\\\"trace_id\\\":\\\"2104a64c17840997542904838e0817\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1450,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。"
},
{
"service": "aitable",
"command": "+workflow-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +workflow-get --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --workflow-id DWSREALREADNOSUCHID0000000000000 --yes --format json",
"args": [
"aitable",
"+workflow-get",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--workflow-id",
"DWSREALREADNOSUCHID0000000000000",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"GET_WORKFLOW_ERROR\\\",\\\"message\\\":\\\"调用远程服务业务异常\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to get workflow in base 'gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk' due to an unexpected error\\\",\\\"trace_id\\\":\\\"2104a64c17840997556363676e08ee\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1535,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。"
},
{
"service": "aitable",
"command": "+workflow-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test aitable +workflow-list --base-id gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk --limit 10 --offset 1 --yes --format json",
"args": [
"aitable",
"+workflow-list",
"--base-id",
"gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk",
"--limit",
"10",
"--offset",
"1",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"LIST_WORKFLOWS_ERROR\\\",\\\"message\\\":\\\"biz error\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to list workflows in base 'gpG2NdyVXQyZ0OmoSbd1vbA6JMwvDqPk' due to an unexpected error\\\",\\\"trace_id\\\":\\\"2127d89817840997572427879e075d\\\"}\"\n }\n}",
"exit_code": 1,
"duration_ms": 1540,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。"
},
{
"service": "attendance",
"command": "+get-class",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +get-class --class-id 1 --yes --format json",
"args": [
"attendance",
"+get-class",
"--class-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_class_detail)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"rule not found\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2127d89817840997588238831e0757\"\n }\n}",
"exit_code": 1,
"duration_ms": 1492,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "attendance",
"command": "+get-global-setting",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +get-global-setting --setting-scene checkRemind --scope '企业' --yes --format json",
"args": [
"attendance",
"+get-global-setting",
"--setting-scene",
"checkRemind",
"--scope",
"企业",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/query_global_setting)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"NO_PERMISSION\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2104a64c17840997604718062e085e\"\n }\n}",
"exit_code": 1,
"duration_ms": 1635,
"failure_category": "auth-or-permission",
"fixability": "not-cli-fixable",
"diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。"
},
{
"service": "attendance",
"command": "+get-group",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +get-group --group-id 1 --yes --format json",
"args": [
"attendance",
"+get-group",
"--group-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_group_detail)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"rule not found\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"0b5deb3217840997620512305e08ef\"\n }\n}",
"exit_code": 1,
"duration_ms": 1568,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "attendance",
"command": "+get-group-filtered",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +get-group-filtered --group-id 1 --member --position --wifi --bles --yes --format json",
"args": [
"attendance",
"+get-group-filtered",
"--group-id",
"1",
"--member",
"--position",
"--wifi",
"--bles",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_group_filtered_detail)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"rule not found\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2104a64c17840997638062468e08c7\"\n }\n}",
"exit_code": 1,
"duration_ms": 1746,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "attendance",
"command": "+get-leave-balance",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +get-leave-balance --users 202397 --leave-code 731ed089-62ff-4734-a6c7-3c8fcc8294fc --yes --format json",
"args": [
"attendance",
"+get-leave-balance",
"--users",
"202397",
"--leave-code",
"731ed089-62ff-4734-a6c7-3c8fcc8294fc",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 亲,假期类型没有余额 (operation: attendance-wukong/get_leave_balance_quota)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"2002\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2104a64c17840997652901307e081a\"\n }\n}",
"exit_code": 1,
"duration_ms": 1479,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "attendance",
"command": "+list-report-columns",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +list-report-columns --yes --format json",
"args": [
"attendance",
"+list-report-columns",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_report_columns)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"AUTH_ERROR\",\n \"server_key\": \"attendance-wukong\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。root.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"6001\\\",\\\"errorMsg\\\":\\\"无权限操作\\\"} \",\n \"trace_id\": \"2127d89817840997666188472e0756\"\n }\n}",
"exit_code": 1,
"duration_ms": 1351,
"failure_category": "auth-or-permission",
"fixability": "not-cli-fixable",
"diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。"
},
{
"service": "attendance",
"command": "+query-report-leave",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test attendance +query-report-leave --users 202397 --leave-names '年假' --start '2026-07-15 10:00:00' --end '2026-07-15 16:00:00' --yes --format json",
"args": [
"attendance",
"+query-report-leave",
"--users",
"202397",
"--leave-names",
"年假",
"--start",
"2026-07-15 10:00:00",
"--end",
"2026-07-15 16:00:00",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_leave_time_by_leave_names)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"AUTH_ERROR\",\n \"server_key\": \"attendance-wukong\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。root.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"6001\\\",\\\"errorMsg\\\":\\\"无权限操作\\\"} \",\n \"trace_id\": \"2104a64c17840997679973065e085f\"\n }\n}",
"exit_code": 1,
"duration_ms": 1373,
"failure_category": "auth-or-permission",
"fixability": "not-cli-fixable",
"diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。"
},
{
"service": "calendar",
"command": "+find-room",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test calendar +find-room --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --yes --format json",
"args": [
"calendar",
"+find-room",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 查询范围内的会议室数量,超过上限100,请选择更小范围的分组进行查询。\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"458019\",\n \"server_key\": \"calendar\",\n \"trace_id\": \"0bb7c36217840997694975303e0758\"\n }\n}",
"exit_code": 1,
"duration_ms": 1498,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "calendar",
"command": "+room-find",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test calendar +room-find --start 2026-07-16T10:00:00+08:00 --end 2026-07-16T11:00:00+08:00 --available --group-id x --room-name x --limit 10 --page 1 --yes --format json",
"args": [
"calendar",
"+room-find",
"--start",
"2026-07-16T10:00:00+08:00",
"--end",
"2026-07-16T11:00:00+08:00",
"--available",
"--group-id",
"x",
"--room-name",
"x",
"--limit",
"10",
"--page",
"1",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 查询范围内的会议室数量,超过上限100,请选择更小范围的分组进行查询。 (operation: calendar/query_available_meeting_room)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"458019\",\n \"server_key\": \"calendar\",\n \"trace_id\": \"2104a64c17840997709913005e0819\"\n }\n}",
"exit_code": 1,
"duration_ms": 1504,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "chat",
"command": "+category-list-conversations",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +category-list-conversations --category-id 1 --exclude-muted --yes --format json",
"args": [
"chat",
"+category-list-conversations",
"--category-id",
"1",
"--exclude-muted",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] listConversationsByCategoryV2 error\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"0bb7c36217840997724375834e0758\"\n }\n}",
"exit_code": 1,
"duration_ms": 1445,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "chat",
"command": "+chat-get-by-id",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +chat-get-by-id --group-id 1 --yes --format json",
"args": [
"chat",
"+chat-get-by-id",
"--group-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] verifyGroupId error: The group id does not exit (operation: im/get_conv_info_by_group_id)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840997739165535e07bd\"\n }\n}",
"exit_code": 1,
"duration_ms": 1462,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "chat",
"command": "+chat-members-get",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +chat-members-get --id DWSREALREADNOSUCHID0000000000000 --users '冬翔' --yes --format json",
"args": [
"chat",
"+chat-members-get",
"--id",
"DWSREALREADNOSUCHID0000000000000",
"--users",
"冬翔",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openCid or cid is required (operation: im/list_group_member_by_ids)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840997754345760e07bd\"\n }\n}",
"exit_code": 1,
"duration_ms": 1518,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。"
},
{
"service": "chat",
"command": "+chat-messages",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +chat-messages --group cid3Jijzhe2aqs9ysOXjhi05g== --time '2026-07-15 10:00:00' --limit 10 --direction older --yes --format json",
"args": [
"chat",
"+chat-messages",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--time",
"2026-07-15 10:00:00",
"--limit",
"10",
"--direction",
"older",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openCid or cid is required\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"chat\",\n \"trace_id\": \"2104a64c17840997767792656e085e\"\n }\n}",
"exit_code": 1,
"duration_ms": 1328,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。"
},
{
"service": "chat",
"command": "+messages-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +messages-list --group cid3Jijzhe2aqs9ysOXjhi05g== --time '2026-07-15 10:00:00' --forward --limit 10 --yes --format json",
"args": [
"chat",
"+messages-list",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--time",
"2026-07-15 10:00:00",
"--forward",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openCid or cid is required\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"chat\",\n \"trace_id\": \"2127d89817840997797873841e0757\"\n }\n}",
"exit_code": 1,
"duration_ms": 1480,
"failure_category": "backend-or-mcp-error",
"fixability": "not-cli-fixable-first",
"diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。"
},
{
"service": "chat",
"command": "+messages-resource-url",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +messages-resource-url --type mediaId --resource-id x --message-id DWSREALREADNOSUCHID0000000000000 --open-conversation-id cid3Jijzhe2aqs9ysOXjhi05g== --yes --format json",
"args": [
"chat",
"+messages-resource-url",
"--type",
"mediaId",
"--resource-id",
"x",
"--message-id",
"DWSREALREADNOSUCHID0000000000000",
"--open-conversation-id",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] failed to get download url for resourceId: x (operation: im/get_resource_download_url)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"RESOURCE_NOT_FOUND\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840997855423145e07dd\"\n }\n}",
"exit_code": 1,
"duration_ms": 1264,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "chat",
"command": "+search-msg",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +search-msg --group cid3Jijzhe2aqs9ysOXjhi05g== --query '测试' --days 7 --yes --format json",
"args": [
"chat",
"+search-msg",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--query",
"测试",
"--days",
"7",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 当前用户暂无消息搜索权益,无法执行本次搜索。请提示用户开通消息搜索权益后重试。\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"SearchRightsDenied\",\n \"server_key\": \"chat\",\n \"trace_id\": \"0b5deb3217840997866824643e0853\"\n }\n}",
"exit_code": 1,
"duration_ms": 1519,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "chat",
"command": "+thread-replies",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test chat +thread-replies --group cid3Jijzhe2aqs9ysOXjhi05g== --topic-id x --time '2026-07-15 10:00:00' --limit 10 --yes --format json",
"args": [
"chat",
"+thread-replies",
"--group",
"cid3Jijzhe2aqs9ysOXjhi05g==",
"--topic-id",
"x",
"--time",
"2026-07-15 10:00:00",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] failed to decrypt openConvThreadId\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"chat\",\n \"trace_id\": \"0b5deb3217840997883504915e0853\"\n }\n}",
"exit_code": 1,
"duration_ms": 1582,
"failure_category": "missing-real-resource",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。"
},
{
"service": "contact",
"command": "+get-roster",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test contact +get-roster --staff-id x --fields x --yes --format json",
"args": [
"contact",
"+get-roster",
"--staff-id",
"x",
"--fields",
"x",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 操作人无花名册管理权限 (operation: hrmregister/get_authorized_emp_rosterInfo)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"2001\",\n \"server_key\": \"hrmregister\",\n \"trace_id\": \"2106d98117840997920166915e087b\"\n }\n}",
"exit_code": 1,
"duration_ms": 1895,
"failure_category": "auth-or-permission",
"fixability": "not-cli-fixable",
"diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。"
},
{
"service": "contact",
"command": "+list-roster-fields",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test contact +list-roster-fields --yes --format json",
"args": [
"contact",
"+list-roster-fields",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 操作人无花名册管理权限 (operation: hrmregister/list_authorized_roster_fields)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"2001\",\n \"server_key\": \"hrmregister\",\n \"trace_id\": \"213ee25c17840997934295673e08e2\"\n }\n}",
"exit_code": 1,
"duration_ms": 1305,
"failure_category": "auth-or-permission",
"fixability": "not-cli-fixable",
"diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。"
},
{
"service": "devapp",
"command": "+credentials-get",
"risk": "read",
"method": "held; sensitive credential read",
"status": "held",
"input": "",
"args": [],
"stdout": "",
"stderr": "该命令会读取真实应用凭证/密钥;不能用真实 app 自动执行。当前仅用占位 ID 验证负向路径,真实成功需人工在安全环境单独确认。",
"exit_code": null,
"duration_ms": 0,
"failure_category": "held",
"fixability": "manual-approval",
"diagnosis": "高风险或无安全目标,需人工逐项授权后执行。"
},
{
"service": "drive",
"command": "+download",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test drive +download --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --space-id 1 --yes --format json",
"args": [
"drive",
"+download",
"--node",
"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO",
"--space-id",
"1",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 该文件类型不支持通过 download_file 下载。download_file 仅支持普通文件(如 PDF、Word、Excel 等),不支持钉钉在线文档/表格/脑图等在线编辑类型。如需导出在线文档内容,请使用钉钉文档导出相关接口。 (operation: drive/download_file)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"invalidRequest.document.typeIllegal\",\n \"server_key\": \"drive\",\n \"trace_id\": \"0bab027317840997956923965e08c9\"\n }\n}",
"exit_code": 1,
"duration_ms": 1192,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "drive",
"command": "+list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test drive +list --space-id 1 --folder Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ --limit 10 --cursor 0 --order-by name --order asc --thumbnail --yes --format json",
"args": [
"drive",
"+list",
"--space-id",
"1",
"--folder",
"Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ",
"--limit",
"10",
"--cursor",
"0",
"--order-by",
"name",
"--order",
"asc",
"--thumbnail",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] parentId 不属于指定的 spaceId,请确认 parentId 和 spaceId 属于同一个钉盘空间。\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"paramError\",\n \"server_key\": \"drive\",\n \"trace_id\": \"2106d98117840997968627612e087b\"\n }\n}",
"exit_code": 1,
"duration_ms": 1090,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "minutes",
"command": "+action-items",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test minutes +action-items --yes --format json",
"args": [
"minutes",
"+action-items",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"暂无妙记\"\n }\n}",
"exit_code": 3,
"duration_ms": 1286,
"failure_category": "missing-real-minutes-fixture",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "当前账号没有满足条件的妙记/听记或录制会话;需准备真实会议产物后复测。"
},
{
"service": "minutes",
"command": "+latest-minutes",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test minutes +latest-minutes --keyword '测试' --yes --format json",
"args": [
"minutes",
"+latest-minutes",
"--keyword",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"暂无妙记\"\n }\n}",
"exit_code": 3,
"duration_ms": 8499,
"failure_category": "missing-real-minutes-fixture",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "当前账号没有满足条件的妙记/听记或录制会话;需准备真实会议产物后复测。"
},
{
"service": "minutes",
"command": "+list-shared",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test minutes +list-shared --query '测试' --limit 10 --cursor 0 --yes --format json",
"args": [
"minutes",
"+list-shared",
"--query",
"测试",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 0,\n \"minutes\": []\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1362
},
{
"service": "minutes",
"command": "+minutes-search",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test minutes +minutes-search --query '测试' --yes --format json",
"args": [
"minutes",
"+minutes-search",
"--query",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"没搜到妙记\"\n }\n}",
"exit_code": 3,
"duration_ms": 1150,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "minutes",
"command": "+transcript",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test minutes +transcript --keyword '测试' --direction older --yes --format json",
"args": [
"minutes",
"+transcript",
"--keyword",
"测试",
"--direction",
"older",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"暂无妙记\"\n }\n}",
"exit_code": 3,
"duration_ms": 1096,
"failure_category": "missing-real-minutes-fixture",
"fixability": "not-cli-fixable-without-fixture",
"diagnosis": "当前账号没有满足条件的妙记/听记或录制会话;需准备真实会议产物后复测。"
},
{
"service": "oa",
"command": "+done-approvals",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test oa +done-approvals --limit 10 --yes --format json",
"args": [
"oa",
"+done-approvals",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"没有已处理的审批记录\"\n }\n}",
"exit_code": 3,
"duration_ms": 1244,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "oa",
"command": "+pending",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test oa +pending --limit 10 --yes --format json",
"args": [
"oa",
"+pending",
"--limit",
"10",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"当前没有待我审批的任务\"\n }\n}",
"exit_code": 3,
"duration_ms": 1357,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "report",
"command": "+report-latest",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test report +report-latest --keyword '测试' --yes --format json",
"args": [
"report",
"+report-latest",
"--keyword",
"测试",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"暂无日志\"\n }\n}",
"exit_code": 3,
"duration_ms": 1259,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "todo",
"command": "+due-today",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test todo +due-today --role-types executor --yes --format json",
"args": [
"todo",
"+due-today",
"--role-types",
"executor",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"今天没有到期的待办\"\n }\n}",
"exit_code": 3,
"duration_ms": 1145,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "todo",
"command": "+related-tasks",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test todo +related-tasks --role-types executor --status false --yes --format json",
"args": [
"todo",
"+related-tasks",
"--role-types",
"executor",
"--status",
"false",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"没有与你相关的待办(creator/executor/participant 三种角色下均为空)\"\n }\n}",
"exit_code": 3,
"duration_ms": 1122,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "wiki",
"command": "+node-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test wiki +node-list --workspace DWSREALREADNOSUCHID0000000000000 --folder DWSREALREADNOSUCHID0000000000000 --limit 10 --cursor 0 --yes --format json",
"args": [
"wiki",
"+node-list",
"--workspace",
"DWSREALREADNOSUCHID0000000000000",
"--folder",
"DWSREALREADNOSUCHID0000000000000",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"wiki\",\n \"technical_detail\": \"PARAM_ERROR - 未找到指定工具\",\n \"trace_id\": \"2132f5ca17840998189126304e08d9\"\n }\n}",
"exit_code": 1,
"duration_ms": 1120,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "wiki",
"command": "+resolve-space",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test wiki +resolve-space --name 'DWS shortcut 真实测试' --yes --format json",
"args": [
"wiki",
"+resolve-space",
"--name",
"DWS shortcut 真实测试",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"没有找到名称包含 DWS shortcut 真实测试 的知识空间\"\n }\n}",
"exit_code": 3,
"duration_ms": 1533,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "wiki",
"command": "+space-list",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-error",
"input": "/private/tmp/dws-real-test wiki +space-list --type ALL --limit 10 --cursor 0 --yes --format json",
"args": [
"wiki",
"+space-list",
"--type",
"ALL",
"--limit",
"10",
"--cursor",
"0",
"--yes",
"--format",
"json"
],
"stdout": "",
"stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"参数 --type 取值 \\\"ALL\\\" 不合法,允许值:orgWikiSpace, myWikiSpace\"\n }\n}",
"exit_code": 3,
"duration_ms": 759,
"failure_category": "input-or-business-validation",
"fixability": "test-input-or-backend-rule",
"diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。"
},
{
"service": "chat",
"command": "+group-members",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +group-members --group '浅曦-kida,Dennis,秋画' --yes --format json",
"args": [
"chat",
"+group-members",
"--group",
"浅曦-kida,Dennis,秋画",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 3,\n \"members\": [\n {\n \"name\": \"\",\n \"nick\": \"秋画\",\n \"openDingtalkId\": \"DpDC43OwfSyzvpshro641ZyKOpvhZI2tI\",\n \"role\": \"普通成员\"\n },\n {\n \"name\": \"\",\n \"nick\": \"浅曦\",\n \"openDingtalkId\": \"DiPbzolsu3XcIqiPOT4eDpd1MUBtiiFg6Xhx\",\n \"role\": \"群主\"\n },\n {\n \"name\": \"\",\n \"nick\": \"念晨\",\n \"openDingtalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"role\": \"普通成员\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1955
},
{
"service": "chat",
"command": "+messages-mget",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +messages-mget --msg-ids msgEuOor1PmFBNlx9M06N9z1Q== --yes --format json",
"args": [
"chat",
"+messages-mget",
"--msg-ids",
"msgEuOor1PmFBNlx9M06N9z1Q==",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"messages\": [\n {\n \"content\": \"DWS shortcut 修复复测 20260715:验证 chat +dm,请忽略。\",\n \"createTime\": \"2026-07-15 11:01:34\",\n \"openConversationId\": \"cidie1367hAfBxqipzE59k5sknHLrHmvYkw98NADhfnjPI=\",\n \"openMessageId\": \"msgEuOor1PmFBNlx9M06N9z1Q==\",\n \"sender\": \"念晨\",\n \"senderOpenDingTalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\"\n }\n ]\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1461
},
{
"service": "chat",
"command": "+messages-query-send-status",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +messages-query-send-status --open-task-id y/wM6Lo+9GbIqtILYPv1BZDcMW+2FgnqskgcpdOiMdM= --yes --format json",
"args": [
"chat",
"+messages-query-send-status",
"--open-task-id",
"y/wM6Lo+9GbIqtILYPv1BZDcMW+2FgnqskgcpdOiMdM=",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"openConversationId\": \"cidie1367hAfBxqipzE59k5sknHLrHmvYkw98NADhfnjPI=\",\n \"openMessageId\": \"msgEuOor1PmFBNlx9M06N9z1Q==\",\n \"sendStatus\": \"SUCCESS\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1312
},
{
"service": "chat",
"command": "+messages-read-status",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test chat +messages-read-status --conversation-id cidie1367hAfBxqipzE59k5sknHLrHmvYkw98NADhfnjPI= --message-id msgEuOor1PmFBNlx9M06N9z1Q== --users '冬翔' --yes --format json",
"args": [
"chat",
"+messages-read-status",
"--conversation-id",
"cidie1367hAfBxqipzE59k5sknHLrHmvYkw98NADhfnjPI=",
"--message-id",
"msgEuOor1PmFBNlx9M06N9z1Q==",
"--users",
"冬翔",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"memberReadStatusList\": [\n {\n \"openDingTalkId\": \"DAdiiQDqzH1DEqiPOT4eDpd1MUBtiiFg6Xhx\",\n \"readStatus\": \"READ\",\n \"readTime\": \"2026-07-15 11:53:31\",\n \"userNick\": \"冬翔\"\n },\n {\n \"openDingTalkId\": \"D1jIqGatuH3UykpdYxJGSS1ug4rSiPJt8I\",\n \"readStatus\": \"READ\",\n \"readTime\": \"2026-07-15 11:01:35\",\n \"userNick\": \"念晨\"\n }\n ],\n \"messageStatus\": \"SUCCESS\"\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1376
},
{
"service": "ding",
"command": "+receiver-status",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test ding +receiver-status --ding-id 5D73E3AC29C780072D1CD56C6874ACC2 --yes --format json",
"args": [
"ding",
"+receiver-status",
"--ding-id",
"5D73E3AC29C780072D1CD56C6874ACC2",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"receivers\": [\n {\n \"confirmedStatus\": 1,\n \"openDingId\": \"5D73E3AC29C780072D1CD56C6874ACC2\",\n \"receiverNick\": \"粤腾\"\n }\n ]\n },\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1823
},
{
"service": "sheet",
"command": "+list-sheets",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test sheet +list-sheets --node mweZ92PV6O36dZbnsMZx70ylJxEKBD6p --yes --format json",
"args": [
"sheet",
"+list-sheets",
"--node",
"mweZ92PV6O36dZbnsMZx70ylJxEKBD6p",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"count\": 1,\n \"sheets\": [\n {\n \"sheetId\": \"kgqie6hm\",\n \"title\": \"Sheet1\"\n }\n ]\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1690
},
{
"service": "contact",
"command": "+by-mobile",
"risk": "read",
"method": "real-backend-read; no --mock; no --dry-run",
"status": "real-ok",
"input": "/private/tmp/dws-real-test contact +by-mobile --mobile 13161187007 --yes --format json",
"args": [
"contact",
"+by-mobile",
"--mobile",
"13161187007",
"--yes",
"--format",
"json"
],
"stdout": "{\n \"result\": [\n {\n \"isAdmin\": false,\n \"orgEmployeeModel\": {\n \"depts\": [\n {\n \"deptId\": 842379556,\n \"deptName\": \"模型算法\"\n }\n ],\n \"jobNumber\": \"202397\",\n \"labels\": [],\n \"orgAuthEmail\": null,\n \"orgId\": null,\n \"orgMasterDisplayName\": \"张俊韶\",\n \"orgMasterUserId\": \"030386\",\n \"orgName\": \"钉钉\",\n \"orgTitle\": \"\",\n \"orgUserId\": \"202397\",\n \"orgUserName\": \"董鑫阳\",\n \"positions\": [\n {\n \"deptId\": 842379556,\n \"isMain\": true,\n \"managerDisplayName\": null,\n \"managerStaffId\": null,\n \"title\": null,\n \"workStation\": \"浙江-杭州-阿里中心·杭州未科 D1-20-015\"\n }\n ]\n }\n }\n ],\n \"success\": true\n}",
"stderr": "",
"exit_code": 0,
"duration_ms": 1884
}
]
}