diff --git a/AGENTS.md b/AGENTS.md index cf4e16ed..3ae5d065 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -64,9 +64,7 @@ The Schema data flow is one way: + pinned MCP metadata └─ resolves Agent metadata by source precedence Markdown is evidence only; it is not concatenated into final prose - └─ schema_hints/selection/ and schema_hints/metadata/ are retired - (directories may be absent; index.selection / index.metadata may be - {}/omitted); not parallel leaf-fact sources + └─ schema_hints/ is fully retired (must not reappear); not a leaf-fact source 5. One typed hub BoundCommandRegistry @@ -121,8 +119,7 @@ The Schema system has two physically separated processes: a non-delivery helper/test binary and is not a `go:generate` entry. - Inputs: authored source groups (registry + ProductDecl/ContractFinal + MCP metadata + parameter bindings + reviewed parameter concepts + cobra tree). - `schema_hints/selection/` and `schema_hints/metadata/` are retired and may - be absent. + `schema_hints/` is fully retired and must not reappear. - Output (delivery): `schema_catalog/` (per-product shards, `go:embed`) + `param_aliases_generated.go`. `schema_agent_metadata/` must not reappear. - Refresh MCP metadata: `make fetch-mcp-metadata` (iterates 26 MCP server @@ -171,11 +168,9 @@ When adding or changing an Agent-visible command, review all relevant inputs: `Schema`) for parameter facts, interface disposition, safety, and Agent selection prose. Delivered provenance is `contract_final` from `corecmd.contract`. Product routing uses `ProductDecl` (`cli.product_decl`). -- `internal/cli/schema_hints/selection/` and `schema_hints/metadata/` are - retired (directories may be absent). Do not reintroduce selection HintFiles - or metadata tool rows; declare on ProductDecl / the owning leaf instead. -- `internal/cli/schema_hints/index.json` may keep `selection` / `metadata` as - `{}` or omit them; they are not leaf-fact sources. +- `internal/cli/schema_hints/` is fully retired. Do not reintroduce HintFiles, + audit JSON, or `imported/` baselines; declare on ProductDecl / the owning + leaf instead. - Native Runtime Schema identity annotations, when present, as consistency assertions against `EffectiveCommandRegistry`. They must agree exactly and must never materialize, infer, or override registry identity. @@ -203,22 +198,19 @@ For Agent-authored selection edits: 4. Run generation, drift, Schema policy, and the focused CLI tests before proposing the change. -## Agent curation workflow (Schema hints) +## Agent curation workflow Use this workflow when refreshing Agent selection prose and confirmation alignment. Prefer **agent-authored review** over bulk merge scripts that dump -`selection-review.json` or Skill Markdown into Catalog fields. +Skill Markdown into Catalog fields. -Human-authored inputs are split as follows: +Human-authored inputs: | Block | Path | Owns | |---|---|---| | **declaration** | helpers / shortcut `Safety` + `Schema` / ParamDecl + `ProductDecl` | `effect` / `risk` / `confirmation` / `idempotency` / `interface_*` / parameter facts / selection prose (`contract_final`) | -| **selection** (retired) | `internal/cli/schema_hints/selection/` may be absent | not a leaf-fact source; do not reintroduce HintFiles | -| **metadata** (retired) | `internal/cli/schema_hints/metadata/` may be absent | not a leaf-fact source; do not reintroduce tool rows | -`index.json` may omit `selection` / `metadata` or set them to `{}`. Do not -reintroduce selection or metadata tool rows. +`schema_hints/` is fully retired. Do not reintroduce HintFiles or audit JSON. ### Goals @@ -282,10 +274,8 @@ go test ./internal/app -run '^TestSheetFinalSchemaConfirmationMatchesRuntimeGuar ``` `check-runtime-confirmation-truth.sh` compares Catalog -`confirmation=user_required` to Contract SafetySpec (plus any residual -metadata `runtime_gate != none`). It does **not** require a -`schema_hints/metadata` directory: absent, empty shells (`tools: {}`), or -missing `tools` all pass. +`confirmation=user_required` to Contract SafetySpec only. +`schema_hints/` must stay absent. Example rules (fail generation otherwise): diff --git a/Makefile b/Makefile index aec251d7..f53f612d 100644 --- a/Makefile +++ b/Makefile @@ -142,19 +142,7 @@ generate-schema: registry_guard=$$(mktemp -d); \ concepts_guard=$$(mktemp); \ concepts_schema_guard=$$(mktemp); \ - metadata_dir=internal/cli/schema_hints/metadata; \ - metadata_guard=""; \ - if [ -d "$$metadata_dir" ]; then \ - metadata_guard=$$(mktemp -d); \ - cp -R "$$metadata_dir"/. "$$metadata_guard"/; \ - fi; \ - selection_dir=internal/cli/schema_hints/selection; \ - selection_guard=""; \ - if [ -d "$$selection_dir" ]; then \ - selection_guard=$$(mktemp -d); \ - cp -R "$$selection_dir"/. "$$selection_guard"/; \ - fi; \ - trap 'rm -rf "$$registry_guard" "$$concepts_guard" "$$concepts_schema_guard" "$$metadata_guard" "$$selection_guard"' EXIT HUP INT TERM; \ + trap 'rm -rf "$$registry_guard" "$$concepts_guard" "$$concepts_schema_guard"' EXIT HUP INT TERM; \ cp -R internal/cli/schema_command_registry/ "$$registry_guard/"; \ cp internal/cli/param_concepts.json "$$concepts_guard"; \ cp internal/cli/param_concepts.schema.json "$$concepts_schema_guard"; \ @@ -172,30 +160,8 @@ generate-schema: printf '%s\n' 'generation modified reviewed input internal/cli/param_concepts.schema.json' >&2; \ exit 1; \ }; \ - if [ -n "$$metadata_guard" ]; then \ - if [ ! -d "$$metadata_dir" ]; then \ - printf '%s\n' 'generation removed reviewed input internal/cli/schema_hints/metadata' >&2; \ - exit 1; \ - fi; \ - diff -qr "$$metadata_dir" "$$metadata_guard" >/dev/null || { \ - printf '%s\n' 'generation modified reviewed input internal/cli/schema_hints/metadata' >&2; \ - exit 1; \ - }; \ - elif [ -d "$$metadata_dir" ]; then \ - printf '%s\n' 'generation created reviewed input internal/cli/schema_hints/metadata' >&2; \ - exit 1; \ - fi; \ - if [ -n "$$selection_guard" ]; then \ - if [ ! -d "$$selection_dir" ]; then \ - printf '%s\n' 'generation removed reviewed input internal/cli/schema_hints/selection' >&2; \ - exit 1; \ - fi; \ - diff -qr "$$selection_dir" "$$selection_guard" >/dev/null || { \ - printf '%s\n' 'generation modified reviewed input internal/cli/schema_hints/selection' >&2; \ - exit 1; \ - }; \ - elif [ -d "$$selection_dir" ]; then \ - printf '%s\n' 'generation created reviewed input internal/cli/schema_hints/selection' >&2; \ + if [ -e internal/cli/schema_hints ]; then \ + printf '%s\n' 'retired schema_hints/ must not reappear after generation' >&2; \ exit 1; \ fi diff --git a/README.md b/README.md index b5245c03..086282df 100644 --- a/README.md +++ b/README.md @@ -396,7 +396,7 @@ The repo ships a complete Agent Skill system under `skills/`, organized into two - `skills/mono/` — single-skill layout (one `SKILL.md` + `references/products/`), recommended default. - `skills/multi/` — per-product skills (`dingtalk-aitable/`, `dingtalk-calendar/`, `dingtalk-chat/`, ...), each with its own `SKILL.md`. 🧪 **EXPERIMENTAL / preview — see banner in each multi `SKILL.md` for caveats.** -Shared Schema generation inputs live under `internal/cli/schema_hints/` (`selection/` and `metadata/` are retired and may be absent; leaf safety/parameters/selection prose come from ProductDecl / Contract). They are not Agent Skills and are excluded from release skill bundles. +Leaf safety/parameters/selection prose for Schema generation come from ProductDecl / ContractFinal declarations in Go. The former `internal/cli/schema_hints/` HintFile tree is fully retired and must not reappear. After installing, AI tools like Claude Code / Cursor can operate DingTalk directly through natural language: diff --git a/README_zh.md b/README_zh.md index 6982ce6e..bade93d5 100644 --- a/README_zh.md +++ b/README_zh.md @@ -390,7 +390,7 @@ dws aitable record query --base-id BASE_ID --table-id TABLE_ID --limit 10 - `skills/mono/` — 单 skill 布局(一个 `SKILL.md` + `references/products/`),默认推荐。 - `skills/multi/` — 每个产品一个独立 skill(`dingtalk-aitable/` / `dingtalk-calendar/` / `dingtalk-chat/` ...),每个 skill 自带 `SKILL.md`。🧪 **试验版 / Preview — 各 multi `SKILL.md` 头部有详细注意事项。** -Schema 生成共享输入单独位于 `internal/cli/schema_hints/`(`selection/` 与 `metadata/` 已退役且可缺席;叶子 safety/参数/选型文案由 ProductDecl / Contract 声明)。它们不是 Agent Skill,也不会进入发布 skill 包。 +Schema 生成的叶子 safety/参数/选型文案由 Go 中的 ProductDecl / ContractFinal 声明驱动。原 `internal/cli/schema_hints/` HintFile 目录已完全退役,不得重新引入。 安装之后,Claude Code / Cursor 等 AI 工具就能通过自然语言直接操作钉钉: diff --git a/docs/flag-help-schema-homology.md b/docs/flag-help-schema-homology.md index 126193d6..9e1de37e 100644 --- a/docs/flag-help-schema-homology.md +++ b/docs/flag-help-schema-homology.md @@ -141,7 +141,7 @@ NewLeafCommand(LeafSpec{ | `cli.AnnotateRuntimeGate` / `devAppMetaWrite` | `dws.schema.runtime_gate=devAppRequireWriteGuard` | 尚未迁移到 SafetySpec 的旧写命令(`HOM-S2`) | | `cli.AnnotateRuntimeRisk` | `dws.schema.risk=…` | Shortcut 暂存的旧兼容路径;command/Leaf 禁止新增 | | `cli.AnnotateRuntimeFlag` / Constraints | 与 embed 同形 | 手写 cobra 叶补齐表面(长期应迁入 Contract) | -| reviewed `schema_hints/metadata` Safety | effect/risk/confirmation | 已迁出:metadata 壳为 `tools: {}`;受管命令以 Contract.Safety / gate 为准 | +| reviewed `schema_hints/metadata` Safety(已退役) | effect/risk/confirmation | 已删:`schema_hints/` 不得重现;受管命令以 Contract.Safety / gate 为准 | 标注与声明冲突时:**Contract 声明胜**(路径 A)。标注不得发明未注册的 CLI flag。 @@ -160,7 +160,7 @@ NewLeafCommand(LeafSpec{ | Safety.`effect/risk/confirmation/idempotency` | **声明**完整 `Safety`,或迁移期 `runtime_gate` / reviewed Safety | 四字段独立;不得互相推导 | | DryRun | 评审源 | dry-run capabilities registry | | Interface | 评审源 | MCP + 内存 inject 的 Agent metadata | -| Selection | 评审源 | `schema_hints/selection` | +| Selection | 声明(ContractFinal / ProductDecl) | `SchemaDecl.Selection` / `ProductDecl` | | FieldProvenance / Extensions | 组装派生或评审扩展 | 组装器;与 delivered value 一致 | | (非 Schema parameter)ConstParams | **声明** | 载荷;不上 parameters 表 | @@ -173,7 +173,7 @@ NewLeafCommand(LeafSpec{ | flags / defaults / required / enum / 关系约束 / 运行时 Risk | Contract(LeafSpec / `corecmd.Spec` 门面) | cobra、`--help`、Schema `parameters` / constraints / confirmation | | ConstParams、Bind、OmitEmpty、Transform | 同上(载荷声明,不上 flag 表) | toolArgs;Schema 不把 ConstParams 伪装成用户 flag | | canonical path / aliases / navigation / exposure | `schema_command_registry`(+ reviewed manual additions) | Schema identity | -| use_when / avoid_when / examples / agent_summary 文案 | `schema_hints/selection` | Schema selection | +| use_when / avoid_when / examples / agent_summary 文案 | `SchemaDecl.Selection` / `ProductDecl` | Schema selection | | RPC tool 形状、`interface_ref`、interface 描述 | `schema_mcp_metadata` + `schema_parameter_bindings` | Schema `interface_*` 字段;**不得创建 flag** | | 参数描述 overlay(可选) | 生产 metadata 壳为空;参数事实走 ParamDecl / FlagSpec | **Contract/cobra 胜** | | 遗留 Safety 文案(迁移期) | 生产 metadata 壳为空;Safety 走 Contract | 以 Contract.Safety / runtime_gate 为准(见 §4) | diff --git a/docs/rfc-command-framework-convergence.md b/docs/rfc-command-framework-convergence.md index c6edaa82..58776439 100644 --- a/docs/rfc-command-framework-convergence.md +++ b/docs/rfc-command-framework-convergence.md @@ -345,7 +345,7 @@ Definition(仅声明;不可编译) | **Identity** | `product_id`, `name`, `cli_name`, `canonical_path` / `cli_path` / `primary_cli_path`, `group`, `aliases`, `source`, `source_product_id` | 绑定树 entry(registry 绑定结果) | `schema_command_registry`(+ reviewed manual additions);`SchemaDecl.Identity` 可声明但**必须与绑定一致**,不一致组装报错 | 可声明(钉扎/自描述),**不得改绑** | | **Display / Title / Description** | 产品展示名;工具 title/description | 评审源为主;cobra Short/Long 可作候选 | registry 产品名;hints/metadata / cobra help 解析 | Short/Long 可声明,但 **canonical 文案不以 Contract 胜 identity** | | **Parameters** | `name`, `type`, `required` / `cli_required`, `default` | **声明**(或手写 annotate 同形) | `Flags` → `embedContractIntoSchema` / cobra | **是** | -| | `description`(usage 文案) | 声明 usage;生产 metadata 壳为空 | `FlagSpec.Usage` / ParamDecl;勿再往 `schema_hints/metadata` 填 overlay | usage **是**;不得用 hint overlay 改 type/required/default | +| | `description`(usage 文案) | 声明 usage | `FlagSpec.Usage` / ParamDecl;`schema_hints/` 已退役 | usage **是**;不得用 hint overlay 改 type/required/default | | | `property`(载荷键) | 声明 | `FlagSpec.Bind`(空则 Name) | **是**(载荷映射) | | | `enum`, `format`, `example`, `required_when` | 声明或评审 annotate | 今日部分仍 hints/手工;目标进 Contract / reviewed 约束 | 有则须 declare 或 reviewed annotate | | | `interface_description`, `interface_type`, `interface_default` | 评审源(interface) | `schema_mcp_metadata` + bindings | 否;**不得创建 CLI flag**(`HOM-I1`) | @@ -356,12 +356,12 @@ Definition(仅声明;不可编译) | | `effect_source` / provenance | 组装派生物 | resolver 写入 `FieldProvenance` | 派生,不手写 | | **DryRun** | `preview_kind`, `remote_reads` | 评审源 | `schema_dry_run_capabilities`(正能力声明) | 否;无条目 ≠ 推断「不支持」之外的假能力 | | **Interface** | `interface_mode`, `interface_ref`, `availability`, `reason` | 评审源 | MCP meta + agent metadata 解析 | 否;与 CLI Identity 分离 | -| **Selection** | `agent_summary`, `use_when`, `avoid_when`, `examples`, `prerequisites`, `tips`, `workflow_refs`, … | 声明(`SchemaDecl.Selection`)或评审源 | `SchemaDecl` / `schema_hints/selection` | 可声明;声明载荷**不得携带** `Reviewed`(旧路径专用),携带即组装报错 | +| **Selection** | `agent_summary`, `use_when`, `avoid_when`, `examples`, `prerequisites`, `tips`, `workflow_refs`, … | 声明(`SchemaDecl.Selection` / `ProductDecl`) | `SchemaDecl` / `ProductDecl`(`schema_hints/` 已退役) | 可声明;声明载荷**不得携带** `Reviewed`(旧路径专用),携带即组装报错 | | **FieldProvenance** | 各字段 winner / candidates | 组装派生物 | Schema 组装器 | 派生;须与 delivered value 一致 | | **Extensions / MetadataSource** | 扩展袋;元数据来源标记 | 评审源或组装标记 | hints / embedded MCP / resolver | 不构成 CLI 表面 | | **ConstParams**(框架有、Schema parameters 无) | 固定 toolArgs | **声明**(载荷) | `ConstParams` | **是**(故意不上 parameter 表) | -产品级 Schema(`ProductSpec` 的 description / selection)权威在 registry + selection hints,**不在**单命令 Contract。 +产品级 Schema(`ProductSpec` 的 description / selection)权威在 registry + `ProductDecl`,**不在**单命令 Contract。 冲突规则(路径 A): diff --git a/docs/schema-dynamic-endpoint-design.md b/docs/schema-dynamic-endpoint-design.md index 9855ce80..eac7cb4a 100644 --- a/docs/schema-dynamic-endpoint-design.md +++ b/docs/schema-dynamic-endpoint-design.md @@ -32,20 +32,20 @@ schema_command_registry.json (reviewed CommandRegistry source) | +----------------------+ | -skills/mono Markdown + internal/cli/schema_hints/*.json | - + schema_mcp_metadata.json | +skills/mono Markdown (evidence only) + + schema_mcp_metadata.json | | | v | Agent-metadata normalization | (in-memory only; no | - schema_agent_metadata/ write) | + schema_agent_metadata/ write; | + schema_hints/ retired) | | | +-----------------------+ | live Cobra flag facts / typed parameter metadata + leaf Contract (Safety / Schema / ParamDecl → contract_final) - + schema_hints/metadata/*.json (retired; may be absent) - + schema_hints/selection/*.json (reviewed Agent selection prose) + + ProductDecl (product routing prose) + schema_parameter_bindings.json (reviewed flag -> RPC property) + schema_mcp_metadata.json (pinned, sanitized interface facts) + in-memory Agent metadata (InstallBuildTimeAgentMetadataJSON) @@ -129,11 +129,10 @@ DWS 当前对外仍保留兼容 wire:leaf 使用 flat `parameters`,安全和 | reviewed manual command additions | 将一个精确存在的 runnable Cobra leaf 合并进 `EffectiveCommandRegistry`;必须 reviewed 且带 reason | 运行时 fallback、覆盖冲突 identity、创建命令 | | Go/Cobra | Contract 编译后的可执行投影:路径是否真实可执行、Cobra 接受的 flag、DefValue、help 文本 | 稳定 canonical identity、Agent 场景选择、虚构 RPC;**不得**成为与 Contract 平行的第二套 flag 权威 | | native Schema identity annotations | implementation-side consistency evidence;存在时必须与 `EffectiveCommandRegistry` 精确一致 | 提供、补全、推断或覆盖 identity | -| `schema_hints/metadata/*.json` product shells | 保留产品壳(`tools: {}`);叶子事实已迁入 Contract/ParamDecl | 重新填入 reviewed 工具行或 parameter overlay;创建命令/flag;绕过 completeness、虚构 RPC | | typed parameter metadata / constraints | 由 Contract 约束投影而来的 `require_one_of` / 互斥等;以及仍需 reviewed 的 `required_when` 等 | 命令 identity | | `schema_parameter_bindings.json` | 稳定 CLI flag 到 RPC property 的映射 | 命令发现、risk 推断、创建 CLI flag | | `schema_mcp_metadata.json` | pinned RPC identity、接口描述和脱敏参数事实(interface 同源) | CLI identity、运行时路由、**创建 CLI flag**、risk 推断 | -| `schema_hints/selection/*.json` | reviewed selection prose(summary / use_when / avoid_when / examples) | 创建 Cobra 命令或参数、改写 safety | +| ProductDecl + leaf `Schema.Selection` | reviewed selection / product routing prose(`contract_final`) | 创建 Cobra 命令或参数、改写 safety;`schema_hints/` 已退役 | | Skills/Markdown | 产品路由、工作流和使用建议 | 命令存在性和 flag 事实 | | `schema_catalog/`(catalog.json + tools/.json)及其他 generated JSON | resolved registry 的兼容发布序列化;运行时由 production loader 解回 typed registry/index | generation/source resolution 输入、identity fallback、手工修复源 | @@ -327,6 +326,6 @@ go test ./internal/cli ./internal/app ./internal/generator/... -count=1 - renderer、query 或 gate 在 `SchemaRegistry` 之后重新读取 source 并做第二次 merge。 - 用 prefix/wildcard exclusion 隐藏未来命令。 - 让 manual hint、CommandRegistry 或 interface metadata 宣称一个不存在的命令、flag 或 RPC 可用。 -- 让 `schema_hints/metadata` 重新承载 reviewed 工具行 / parameter overlay,或让任何残留 overlay 在与 Contract/cobra 冲突时赢得 type/required/default。 +- 重新引入 `schema_hints/`(含 selection/metadata/imported/audit JSON),或让任何残留 HintFile overlay 在与 Contract/cobra 冲突时赢得 type/required/default。 - 把 `schema --all` 当作普通业务数据查询,或把其完整结果无条件注入 Agent 上下文。 - 将 LeafSpec、`+shortcut` 或 write-guard/cursor/多步命令注册为 `mcp_passthrough` 表面。 diff --git a/docs/shortcut-lark-alignment.md b/docs/shortcut-lark-alignment.md index 5ba310cb..302ae54a 100644 --- a/docs/shortcut-lark-alignment.md +++ b/docs/shortcut-lark-alignment.md @@ -63,18 +63,18 @@ |---|:---:|---| | covered-1to1 | 144 | lark 组合在钉钉塌缩成 1:1,封装层已覆盖 | | no-dingtalk-tool | 127 | 钉钉无对应工具,客观不可对齐 | -| **gap-buildable** | **42** | 钉钉有工具、值得补成智能 shortcut(**建设目标**);已建 minutes `+detail`/`+replace-batch`、base `+record-share-links`/`+resolve-base`、im `+thread-replies`/`+chat-messages`、task `+related-tasks` | -| covered-smart | 48 | 已建智能 shortcut / 部分覆盖 | +| **gap-buildable** | **41** | 钉钉有工具、值得补成智能 shortcut(**建设目标**);已建 minutes `+detail`/`+replace-batch`、base `+record-share-links`/`+resolve-base`、im `+thread-replies`/`+chat-messages`/`+chat-list`、task `+related-tasks` | +| covered-smart | 49 | 已建智能 shortcut / 部分覆盖 | -## 🎯 gap-buildable 目标清单(原 49 条,已建 7 → 剩 42,按服务) +## 🎯 gap-buildable 目标清单(原 49 条,已建 8 → 剩 41,按服务) -> 已落地:minutes `+detail`(✅ smart `+detail`)、minutes `+word-replace`(✅ smart `+replace-batch`,批量+去重)、base `+record-share-link-create`(✅ smart `+record-share-links`,>20 去重+分片+合并)、im `+threads-messages-list`(✅ smart `chat +thread-replies`,list_topic_replies + 投影)、task `+get-related-tasks`(✅ smart `todo +related-tasks`,三角色并集+去重+投影)。 +> 已落地:minutes `+detail`(✅ smart `+detail`)、minutes `+word-replace`(✅ smart `+replace-batch`,批量+去重)、base `+record-share-link-create`(✅ smart `+record-share-links`,>20 去重+分片+合并)、im `+threads-messages-list`(✅ smart `chat +thread-replies`,list_topic_replies + 投影)、im `+chat-list`(✅ smart `chat +chat-list`)、task `+get-related-tasks`(✅ smart `todo +related-tasks`,三角色并集+去重+投影)。 -### im → chat(6) +### im → chat(5) | lark 命令 | risk | 保真度差距(钉钉有 tool,缺什么智能) | |---|---|---| -| `+chat-list` | read | dws 有 list-my-groups/list-all-conversations 原子 tool,但无 types 枚举+bot剥p2p降级、无 exclude-muted 客户端过滤、无字段投影 | +| `+chat-list` ✅ | read | **已建 smart `chat +chat-list`**:`list_all_conversations` + 默认仅群聊 + `--types group/p2p` 当前页过滤 + `--exclude-muted` + page-size/page-token 别名 + openConversationId/name/conversationType 投影。剩余未做:sort/sort-type、bot 身份 p2p 剥离(DWS 无对应身份模型) | | `+chat-messages-list` ✅ | read | **已建 smart `chat +chat-messages`**:群/单聊 list_conversation_message_v2 / list_individual_chat_message 互斥 + sender/text/time 投影。剩余未做:reactions 富化、资源下载 | | `+chat-search` | read | dws 无群名模糊搜索v2对应 tool(search_common_groups/find 语义不同),缺 query规范化、mode映射、mute过滤、meta投影 | | `+messages-resources-download` | write | dws download-media 走 get_resource_download_url 拿URL,缺分片Range下载/重试/扩展名推断/安全落盘路径校验 | @@ -176,7 +176,7 @@ ## 已建智能 shortcut(covered-smart,48)— 可继续升级保真度 -- **im**: +chat-members-list +messages-send +threads-messages-list +- **im**: +chat-members-list +chat-list +messages-send +threads-messages-list - **task**: +complete +assign +get-my-tasks +get-related-tasks - **contact**: +search-user - **calendar**: +agenda +create +update +freebusy +suggestion diff --git a/internal/app/schema_interface_disposition_contract_test.go b/internal/app/schema_interface_disposition_contract_test.go index cc7d3f65..7fec82c1 100644 --- a/internal/app/schema_interface_disposition_contract_test.go +++ b/internal/app/schema_interface_disposition_contract_test.go @@ -5,8 +5,6 @@ package app import ( - "encoding/json" - "os" "sort" "testing" ) @@ -172,122 +170,71 @@ func TestViewGetWrappersUsePinnedGetViewsInterface(t *testing.T) { } } +// TestReviewedInterfaceDispositionSourceOwnsRuntimeSurface asserts that every +// delivered Catalog tool owns interface disposition via ContractFinal +// (corecmd.contract). Former schema_hints audit JSON +// (runtime-surface-completeness / zz-interface-disposition-review) is retired. func TestReviewedInterfaceDispositionSourceOwnsRuntimeSurface(t *testing.T) { - type hintFile struct { - Source map[string]any `json:"source"` - Tools map[string]map[string]any `json:"tools"` - } - load := func(path string) hintFile { - t.Helper() - data, err := os.ReadFile(path) - if err != nil { - t.Fatalf("read %s: %v", path, err) - } - var value hintFile - if err := json.Unmarshal(data, &value); err != nil { - t.Fatalf("decode %s: %v", path, err) - } - return value - } - runtimeSurface := load("../cli/schema_hints/runtime-surface-completeness.json") - // After hints→declarations migration, disposition facts live in compiled - // ContractFinal (corecmd.contract). zz-interface-disposition-review.json - // remains the audit key set + expected values for this gate. - dispositions := load("../cli/schema_hints/zz-interface-disposition-review.json") - if dispositions.Source["reviewed"] != true { - t.Fatalf("interface disposition source reviewed = %#v, want true", dispositions.Source["reviewed"]) - } - for canonical, hint := range runtimeSurface.Tools { - if hint["reviewed"] != false { - t.Errorf("%s runtime surface reviewed = %#v, want false", canonical, hint["reviewed"]) - } - for _, field := range []string{"interface_mode", "availability", "interface_ref", "interface_reason"} { - if _, exists := hint[field]; exists { - t.Errorf("%s runtime surface still owns %s", canonical, field) - } - } - if _, exists := dispositions.Tools[canonical]; !exists { - t.Errorf("%s runtime surface has no reviewed interface disposition", canonical) - } - } - - allowedFields := map[string]bool{ - "interface_mode": true, - "availability": true, - "interface_ref": true, - "interface_reason": true, - } - canonicals := make([]string, 0, len(dispositions.Tools)) - for canonical, hint := range dispositions.Tools { + tools := embeddedSchemaAllToolsForHelpFlagTest(t, NewRootCommand()) + canonicals := make([]string, 0, len(tools)) + for canonical := range tools { canonicals = append(canonicals, canonical) - for field := range hint { - if !allowedFields[field] { - t.Errorf("%s interface-only source contains non-interface field %s", canonical, field) - } - } - mode := schemaContractString(hint["interface_mode"]) - if mode == "local" { - t.Errorf("%s remote interface review is incorrectly classified local", canonical) - } - if schemaContractString(hint["availability"]) != "available" { - t.Errorf("%s reviewed disposition is not available", canonical) - } - switch mode { - case "mcp": - ref := schemaInterfaceObject(hint["interface_ref"]) - if schemaContractString(ref["product_id"]) == "" || schemaContractString(ref["rpc_name"]) == "" { - t.Errorf("%s reviewed mcp disposition has no complete interface_ref", canonical) - } - case "composite": - if hint["interface_ref"] != nil { - t.Errorf("%s reviewed composite disposition advertises interface_ref %#v", canonical, hint["interface_ref"]) - } - if schemaContractString(hint["interface_reason"]) == "" { - t.Errorf("%s reviewed composite disposition has no reason", canonical) - } - default: - t.Errorf("%s reviewed disposition mode = %q", canonical, mode) - } } sort.Strings(canonicals) - payload := schemaContractPayloadForBoundCanonicals(t, NewRootCommand(), canonicals...) + if len(canonicals) == 0 { + t.Fatal("embedded schema --all contains no tools") + } for _, canonical := range canonicals { - want := dispositions.Tools[canonical] - tool := payload.Tools[canonical] - if got := schemaContractString(tool["interface_mode"]); got != schemaContractString(want["interface_mode"]) { - t.Errorf("%s final interface_mode = %q, want %q", canonical, got, want["interface_mode"]) + tool := tools[canonical] + mode := schemaContractString(tool["interface_mode"]) + availability := schemaContractString(tool["availability"]) + switch mode { + case "mcp", "composite", "local": + default: + t.Errorf("%s interface_mode = %q, want mcp|composite|local", canonical, mode) } - if got := schemaContractString(tool["availability"]); got != schemaContractString(want["availability"]) { - t.Errorf("%s final availability = %q, want %q", canonical, got, want["availability"]) + switch availability { + case "available", "unavailable": + default: + t.Errorf("%s availability = %q, want available|unavailable", canonical, availability) } - if schemaContractString(want["interface_mode"]) == "composite" { + switch { + case availability == "unavailable": if tool["interface_ref"] != nil { - t.Errorf("%s final composite interface_ref = %#v, want nil", canonical, tool["interface_ref"]) + t.Errorf("%s unavailable interface_ref = %#v, want nil", canonical, tool["interface_ref"]) } - if got := schemaContractString(tool["interface_reason"]); got != schemaContractString(want["interface_reason"]) { - t.Errorf("%s final interface_reason = %q, want %q", canonical, got, want["interface_reason"]) + if schemaContractString(tool["interface_reason"]) == "" { + t.Errorf("%s unavailable disposition missing interface_reason", canonical) } - } else { - gotRef := schemaInterfaceObject(tool["interface_ref"]) - wantRef := schemaInterfaceObject(want["interface_ref"]) - for _, field := range []string{"product_id", "rpc_name"} { - if got := schemaContractString(gotRef[field]); got != schemaContractString(wantRef[field]) { - t.Errorf("%s final interface_ref.%s = %q, want %q", canonical, field, got, wantRef[field]) - } + case mode == "mcp": + ref := schemaInterfaceObject(tool["interface_ref"]) + if schemaContractString(ref["product_id"]) == "" || schemaContractString(ref["rpc_name"]) == "" { + t.Errorf("%s mcp disposition has incomplete interface_ref", canonical) + } + case mode == "composite": + if tool["interface_ref"] != nil { + t.Errorf("%s composite interface_ref = %#v, want nil", canonical, tool["interface_ref"]) + } + if schemaContractString(tool["interface_reason"]) == "" { + t.Errorf("%s composite disposition missing interface_reason", canonical) + } + case mode == "local": + if tool["interface_ref"] != nil { + t.Errorf("%s local interface_ref = %#v, want nil", canonical, tool["interface_ref"]) } } provenance := schemaContractMap(tool["field_provenance"]) fields := []string{"interface_mode", "availability", "interface_ref"} - if schemaContractString(want["interface_mode"]) == "composite" { + if mode == "composite" || availability == "unavailable" { fields = append(fields, "interface_reason") } for _, field := range fields { entry := provenance[field] if got := schemaContractString(entry["precedence"]); got != "contract_final" { - t.Errorf("%s final %s precedence = %q, want contract_final", canonical, field, got) + t.Errorf("%s %s precedence = %q, want contract_final", canonical, field, got) } if got := schemaContractString(entry["source"]); got != "corecmd.contract" { - t.Errorf("%s final %s source = %q, want corecmd.contract", canonical, field, got) + t.Errorf("%s %s source = %q, want corecmd.contract", canonical, field, got) } } } diff --git a/internal/app/schema_shortcut_contract_test.go b/internal/app/schema_shortcut_contract_test.go index 007fc545..6d98785d 100644 --- a/internal/app/schema_shortcut_contract_test.go +++ b/internal/app/schema_shortcut_contract_test.go @@ -16,7 +16,7 @@ import ( ) const ( - publicShortcutCount = 265 + publicShortcutCount = 266 schemaPublishedShortcutCount = 215 ) diff --git a/internal/cli/gen.go b/internal/cli/gen.go index aaace983..e26c9d39 100644 --- a/internal/cli/gen.go +++ b/internal/cli/gen.go @@ -25,8 +25,7 @@ // 5. param_concepts.json + schema reviewed parameter synonym policy // 6. cobra command tree (Go runtime) flags/usage/required (reflected) // -// schema_hints/selection/ and schema_hints/metadata/ are retired (directories -// may be absent). index.selection / index.metadata may be omitted or {}. +// schema_hints/ is retired entirely (must not reappear as a generation input). // schema_agent_metadata/ is retired: Catalog generation injects Agent metadata // in-memory and does not write or embed that intermediate JSON directory. // diff --git a/internal/cli/schema_catalog/catalog.json b/internal/cli/schema_catalog/catalog.json index 62a36cb4..d0995556 100644 --- a/internal/cli/schema_catalog/catalog.json +++ b/internal/cli/schema_catalog/catalog.json @@ -1,18 +1,18 @@ { "version": 1, "surface_hash": "sha256:60eee8e2f37d6d9d60689efce85082798eb9ad38b7ba7c0b471c3de676a85a16", - "source_hash": "sha256:1a4edf80e10758e36d3efa16f470b596b7b396c35429e61e00eb16d80d885918", + "source_hash": "sha256:3ca4572eec414792efc423da2036607742f986f36c1488aad07540b89d9b704f", "catalog": { "agent_metadata": { "products_with_metadata": 26, "source": "embedded-skill-metadata", - "source_hash": "sha256:12f65e8496a3ae727e0371204457848a4a686d4913c72a6661bc95536f25cba5", + "source_hash": "sha256:78d59e409395312b65af057ed0d2a264944c1b5350be6e81a82c2679e3c254a3", "surface_hash": "sha256:60eee8e2f37d6d9d60689efce85082798eb9ad38b7ba7c0b471c3de676a85a16", "surface_products": 26, "surface_tools": 845, "tools_with_agent_summary": 845, "tools_with_metadata": 845, - "unmatched_skill_tools": 118, + "unmatched_skill_tools": 172, "version": 1 }, "count": 26, diff --git a/internal/cli/schema_command_exclusions.json b/internal/cli/schema_command_exclusions.json index 50b8707b..547fcef4 100644 --- a/internal/cli/schema_command_exclusions.json +++ b/internal/cli/schema_command_exclusions.json @@ -165,6 +165,7 @@ "chat +chat-add-bot", "chat +chat-audit-join", "chat +chat-create", + "chat +chat-list", "chat +chat-get-by-id", "chat +chat-members-get", "chat +chat-members-list", diff --git a/internal/cli/schema_hint_emptiness_contract_test.go b/internal/cli/schema_hint_emptiness_contract_test.go index 69cc41a5..e9f3b2d8 100644 --- a/internal/cli/schema_hint_emptiness_contract_test.go +++ b/internal/cli/schema_hint_emptiness_contract_test.go @@ -14,13 +14,10 @@ package cli import ( - "encoding/json" - "io/fs" "os" "path/filepath" "sort" "strconv" - "strings" "testing" ) @@ -46,11 +43,17 @@ func TestDeletedProductionSchemaHintFilesStayGone(t *testing.T) { } } -// TestEmbeddedMetadataHintShellsHaveEmptyTools locks the phase-5 end-state: -// schema_hints/metadata may be absent. When present, shells must keep -// tools:{} so they emit no parameter overlays. Production embed loading -// always passes nil/empty for metadata. -func TestEmbeddedMetadataHintShellsHaveEmptyTools(t *testing.T) { +// TestSchemaHintsDirectoryRetired locks the full schema_hints/ retirement: +// the directory must not reappear as a generation or runtime input. +func TestSchemaHintsDirectoryRetired(t *testing.T) { + if _, err := os.Stat("schema_hints"); !os.IsNotExist(err) { + t.Fatalf("schema_hints/ must stay deleted after HintFile retirement: %v", err) + } +} + +// TestEmbeddedMetadataHintLoadingStaysEmpty locks production embed loading: +// metadata HintFiles are retired; nil/empty FS must yield zero overlays. +func TestEmbeddedMetadataHintLoadingStaysEmpty(t *testing.T) { commands, err := loadParameterCommandsFromMetadata(nil, "") if err != nil { t.Fatalf("loadParameterCommandsFromMetadata(nil, \"\"): %v", err) @@ -58,63 +61,11 @@ func TestEmbeddedMetadataHintShellsHaveEmptyTools(t *testing.T) { if got := len(commands); got != 0 { t.Fatalf("nil metadata parameter overlays = %d, want 0", got) } - - const metadataDir = "schema_hints/metadata" - entries, err := os.ReadDir(metadataDir) - if err != nil { - if os.IsNotExist(err) { - return - } - t.Fatalf("read %s: %v", metadataDir, err) - } - if len(entries) == 0 { - return - } - - metadataFS := os.DirFS(metadataDir) - files, err := fs.Glob(metadataFS, "*.json") - if err != nil { - t.Fatalf("list metadata shells: %v", err) - } - sort.Strings(files) - - nonEmpty := make([]string, 0) - for _, name := range files { - data, err := fs.ReadFile(metadataFS, name) - if err != nil { - t.Fatalf("read %s: %v", name, err) - } - var file hintDirFile - if err := json.Unmarshal(data, &file); err != nil { - t.Fatalf("decode %s: %v", name, err) - } - if len(file.Tools) != 0 { - paths := make([]string, 0, len(file.Tools)) - for canonical := range file.Tools { - paths = append(paths, canonical) - } - sort.Strings(paths) - nonEmpty = append(nonEmpty, filepath.Base(name)+"="+strings.Join(paths, ",")) - } - } - if len(nonEmpty) != 0 { - t.Fatalf("metadata shells must keep tools:{} (want 0 tool rows); nonempty=%v", nonEmpty) - } - - commands, err = loadParameterCommandsFromMetadata(metadataFS, "*.json") - if err != nil { - t.Fatalf("loadParameterCommandsFromMetadata: %v", err) - } - if got := len(commands); got != 0 { - t.Fatalf("on-disk metadata parameter overlays = %d, want 0", got) - } } -// TestEmbeddedSelectionHintShellsHaveEmptyProductsAndTools locks the -// selection retired end-state: directory may be absent. Production embed -// loading always passes nil/empty. When residual shells are present, -// products{} and tools{} must stay empty under ProductDecl/ContractFinal. -func TestEmbeddedSelectionHintShellsHaveEmptyProductsAndTools(t *testing.T) { +// TestEmbeddedSelectionHintLoadingStaysEmpty locks production embed loading: +// selection HintFiles are retired; nil/empty FS must yield empty products/tools. +func TestEmbeddedSelectionHintLoadingStaysEmpty(t *testing.T) { hints, err := loadAgentHintsFromSelection(nil, "") if err != nil { t.Fatalf("loadAgentHintsFromSelection(nil, \"\"): %v", err) @@ -125,51 +76,6 @@ func TestEmbeddedSelectionHintShellsHaveEmptyProductsAndTools(t *testing.T) { if len(hints.Revisions) == 0 { t.Fatal("nil selection hints must keep a synthetic revision") } - - const selectionDir = "schema_hints/selection" - entries, err := os.ReadDir(selectionDir) - if err != nil { - if os.IsNotExist(err) { - return - } - t.Fatalf("read %s: %v", selectionDir, err) - } - if len(entries) == 0 { - return - } - - selectionFS := os.DirFS(selectionDir) - files, err := fs.Glob(selectionFS, "*.json") - if err != nil { - t.Fatalf("list selection shells: %v", err) - } - sort.Strings(files) - - nonEmpty := make([]string, 0) - for _, name := range files { - data, err := fs.ReadFile(selectionFS, name) - if err != nil { - t.Fatalf("read %s: %v", name, err) - } - var file hintDirFile - if err := json.Unmarshal(data, &file); err != nil { - t.Fatalf("decode %s: %v", name, err) - } - if len(file.Products) != 0 || len(file.Tools) != 0 { - nonEmpty = append(nonEmpty, filepath.Base(name)) - } - } - if len(nonEmpty) != 0 { - t.Fatalf("selection shells must keep products:{} tools:{} ; nonempty=%v", nonEmpty) - } - - hints, err = LoadAgentHintsFromSelectionForValidation(selectionFS) - if err != nil { - t.Fatalf("LoadAgentHintsFromSelectionForValidation: %v", err) - } - if len(hints.Products) != 0 || len(hints.Tools) != 0 { - t.Fatalf("on-disk selection hints products=%d tools=%d, want 0/0", len(hints.Products), len(hints.Tools)) - } } // TestEmbeddedCatalogHasNoToolSchemaHintProvenance asserts the published diff --git a/internal/cli/schema_hints/README.md b/internal/cli/schema_hints/README.md deleted file mode 100644 index 264dd801..00000000 --- a/internal/cli/schema_hints/README.md +++ /dev/null @@ -1,188 +0,0 @@ -# DWS Agent Schema Hints - -This directory contains versioned, structured Agent inputs for Schema -generation. Hints belong to the CLI Schema subsystem rather than either -installable Skill layout. They are excluded from embedded binaries and release -Skill bundles. Generation feeds `internal/cli/schema_catalog/` only (`go:embed`). -Agent metadata is injected in-memory during Catalog generation -(`agent_metadata_inject.go` / `InstallBuildTimeAgentMetadataJSON`); the -retired `schema_agent_metadata/` JSON directory must not reappear (policy -fails if present). Do not hand-edit generated Catalog files. - -## Layout - -Human-authored inputs: - -- `index.json` (`format: dws-agent-hint-index`) — optional maps plus reference - review. Strategy: `selection` and `metadata` are optional (omitted or `{}`); - on-disk `selection/` and `metadata/` directories are retired and may be absent. -- `imported/` — sanitized baseline from a fixed external revision - -When `index.json` is present, the generator loads `imported/` plus any -metadata/selection files listed in the optional maps. Sibling review JSON -files in this directory remain CI/audit inputs and are not applied as Agent -metadata sources. - -For the end-to-end Agent curation workflow, see `AGENTS.md` § “Agent curation -workflow (Schema hints)”. - -## Source kinds - -- `contract_final`: leaf-declared Safety / Schema / ParamDecl - (`DeclareLeafMetadata`, `Shortcut.Schema`) and product-level - `ProductDecl` routing prose. This is the production authority for safety, - interface disposition, parameter facts, and Agent selection / product - routing. -- `reviewed_explicit`: residual HintFile prose only when a fixture or - temporary selection/metadata shell still exists; production directories are - retired and must not reintroduce tool rows. -- `explicit`: explicit but not per-tool-reviewed DWS hints. -- `imported`: sanitized metadata from a fixed external revision. It fills missing Agent semantics but cannot redefine command paths or parameter contracts. - -Skill Markdown and audit JSON in this directory remain authoring evidence. -Normal generation does not semantically combine Markdown into the final Agent -prose and never rewrites retired metadata/selection directories. - -The Agent metadata pipeline (invoked in-memory by Catalog generation) also reads the committed `internal/cli/schema_mcp_metadata.json` after Skill and Hint parsing. A sanitized MCP description can fill an otherwise empty `agent_summary`; it is marked `reviewed: false`, retains revision provenance, and cannot infer or override risk/effect fields. - -Tool keys should use stable `canonical_path` values from `internal/cli/schema_command_registry.json`. CLI paths and aliases are also accepted and are reconciled to the canonical public tool during generation. - -`selection-review.json` fixes the reviewed command-selection contract for every -public tool: `use_when`, `avoid_when`, safe examples, and the ordinary direct -interface disposition. Exceptional or formerly unmatched wrappers are owned by -the interface-only reviewed source `zz-interface-disposition-review.json`. -`runtime-surface-completeness.json` remains unreviewed selection evidence and -must not promote its other fields merely to classify an interface. These values -are build inputs; the generator must not derive them from the previous Catalog. - -`reference-review.json` classifies every Skill command reference that is not a -current public leaf. `alias` entries bind an old or cross-product path to an -explicit current target. `group`, `stale`, and `out_of_surface` entries remain -visible in the audit but are never fuzzy-matched to a leaf. - -`interface_ref` is a separate interface binding. Use it when a public helper/canonical tool calls a differently named MCP RPC or another source product. Prefer declaring it on the leaf Contract (`Schema.Interface`) rather than adding a metadata tool row: - -```json -{ - "version": 1, - "source": {"kind": "explicit", "name": "reviewed-interface-map"}, - "tools": { - "chat.bot_search": { - "interface_ref": { - "product_id": "bot", - "rpc_name": "search_my_robots" - } - } - } -} -``` - -An entry containing only `interface_ref` participates in interface projection but does not count as Agent semantic coverage. It cannot add a command, change a flag, or expose a Wukong-only tool. - -`interface_mode` and `availability` are orthogonal reviewed fields. -`interface_mode` has exactly three values: - -- `mcp`: exactly one pinned `interface_ref` implements the command, with an auditable parameter mapping and semantically equivalent execution contract. -- `composite`: multiple RPCs, conditional routing, local projection, or a reviewed remote adapter absent from pinned metadata implements the command; a singular ref would be misleading. -- `local`: the command is fully implemented by the local process, static data, or local policy. An unpinned remote RPC is never `local`. - -`availability` is `available` or `unavailable`. An unavailable command keeps -its real implementation mode, must not carry `interface_ref`, and must include -an explicit `interface_reason`; `unavailable` is never an interface mode. - -The missing `notify` MCP service is separately dispositioned in -`internal/cli/schema_mcp_service_review.json`; it is outside the public command -surface and must not trigger runtime discovery. - -`internal/cli/schema_mcp_metadata.json.coverage.surface_tools` describes only -the immutable MCP import at its declared `source_revision`; it is not the -current CLI/Catalog tool count. Its `coverage.surface_scope` must remain -`source_revision`, and policy verifies the snapshot's internal matched and -unmatched arithmetic. Current Catalog interface coverage is instead proved for -every generated tool: each tool must have one valid `interface_mode` / -availability disposition and retain reviewed provenance to a leaf Contract -declaration (`contract_final`) or another reviewed interface source. This makes -newly added CLI tools explicit without rewriting historical MCP evidence or -promoting an unreviewed selection hint. - -Interface metadata contributes lower-priority typed candidates, including -`required`; source precedence is value-neutral for most fields, so a candidate -may raise or lower the Agent-facing value when no higher-priority source wins. -It cannot override leaf Contract declarations, versioned bindings, typed/native -metadata, or current Cobra/constraint facts for those fields. `required` is -special: Cobra `MarkFlagRequired` is a hard floor that cannot be projected away -as optional. `cli_required` remains the executable Cobra marker with its own -provenance. - -Production `RegisterSchemaHints` maps are empty after ParamDecl migration. -Temporary `tool_schema_hint` injection is allowed only inside unit-test -fixtures that exercise precedence edges. - -```json -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "calendar-schema-review" - }, - "products": { - "calendar": { - "agent_summary": "管理日程、参与人、会议室和闲忙信息" - } - }, - "tools": {} -} -``` - -Run `make generate-schema` after changing selection Hint or Skill sources, or -after changing leaf Contract declarations that feed Schema generation. External -Wukong metadata must be refreshed by the controlled offline import pipeline -with an immutable revision, then committed together with its audit before -regenerating the Catalog; runtime refresh is forbidden. - -## Selection prose - -Leaf facts live on Contract declarations; `index.metadata` may be `{}` or -omitted. The on-disk `metadata/` directory is retired and must not be -reintroduced as a leaf-fact source. - -| Block | Owns | -|---|---| -| leaf Contract (`Safety` / `Schema` / ParamDecl) | safety, interface, parameter facts (`contract_final`) | -| `selection/.json` | `agent_summary`, `use_when`, `avoid_when`, `examples` | - -Selection prose is committed as a reviewed source. `go generate` only reads, -validates, and projects this data. It must never call a model, copy a previous -Catalog, or overwrite selection files. Selection cannot change command -identity, flags, parameters, safety, or interface facts. - -Commands intentionally kept outside Schema remain in the separate exact -reviewed exclusion file `internal/cli/schema_command_exclusions.json`. An -included command cannot also remain excluded: completeness validation treats -that exclusion as stale. - -### Agent editing workflow - -1. Locate the real Cobra leaf and verify its exact path and current flags. -2. Declare safety/interface/parameters on the owning leaf; edit - `selection/.json` for selection prose only. -3. Add only fields that need review. Do not copy generated Catalog fields into - the input. -4. Run: - - ```bash - make generate-schema - ./scripts/policy/check-generated-drift.sh - ./scripts/policy/check-schema-catalog.sh - ./scripts/policy/check-runtime-confirmation-truth.sh - go test ./internal/cli ./internal/app - ``` - - `check-runtime-confirmation-truth.sh` accepts optional/empty metadata - shells (`tools: {}` or absent directory); gated confirmation truth comes - from leaf Contract SafetySpec, not from metadata tool rows. - -6. Review the generated Catalog diff. A leaf declaration change should affect - only the intended contract. A selection edit updates prose provenance to - `reviewed_explicit` from `selection/`; safety/interface provenance stays - `contract_final`. diff --git a/internal/cli/schema_hints/aitable-view-review.json b/internal/cli/schema_hints/aitable-view-review.json deleted file mode 100644 index 2e0a43d7..00000000 --- a/internal/cli/schema_hints/aitable-view-review.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "aitable-view-summary-review-v1", - "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" - }, - "tools": { - "aitable.view_get_aggregate": { - "agent_summary": "查询视图的聚合统计(汇总行)", - "reviewed": true - }, - "aitable.view_get_card": { - "agent_summary": "查询视图的卡片视图样式", - "reviewed": true - }, - "aitable.view_get_field_widths": { - "agent_summary": "查询视图的各列列宽", - "reviewed": true - }, - "aitable.view_get_fill_color_rule": { - "agent_summary": "查询视图的条件填色规则", - "reviewed": true - }, - "aitable.view_get_filter": { - "agent_summary": "查询视图的筛选条件", - "reviewed": true - }, - "aitable.view_get_group": { - "agent_summary": "查询视图的分组", - "reviewed": true - }, - "aitable.view_get_sort": { - "agent_summary": "查询视图的排序规则", - "reviewed": true - }, - "aitable.view_get_timebar": { - "agent_summary": "查询视图的时间条(甘特/时间轴)", - "reviewed": true - }, - "aitable.view_get_visible_fields": { - "agent_summary": "查询视图的可见字段及顺序", - "reviewed": true - }, - "aitable.view_update_aggregate": { - "agent_summary": "更新视图的聚合统计(汇总行)", - "reviewed": true - }, - "aitable.view_update_card": { - "agent_summary": "更新视图的卡片视图样式", - "reviewed": true - }, - "aitable.view_update_field_widths": { - "agent_summary": "更新视图的各列列宽", - "reviewed": true - }, - "aitable.view_update_filter": { - "agent_summary": "更新视图的筛选条件", - "reviewed": true - }, - "aitable.view_update_group": { - "agent_summary": "更新视图的分组", - "reviewed": true - }, - "aitable.view_update_name": { - "agent_summary": "重命名视图(修改视图名称)", - "reviewed": true - }, - "aitable.view_update_sort": { - "agent_summary": "更新视图的排序规则", - "reviewed": true - }, - "aitable.view_update_timebar": { - "agent_summary": "更新视图的时间条(甘特/时间轴)", - "reviewed": true - }, - "aitable.view_update_visible_fields": { - "agent_summary": "更新视图的可见字段及顺序", - "reviewed": true - } - } -} \ No newline at end of file diff --git a/internal/cli/schema_hints/attendance-example-normalization.json b/internal/cli/schema_hints/attendance-example-normalization.json deleted file mode 100644 index a5771cce..00000000 --- a/internal/cli/schema_hints/attendance-example-normalization.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "attendance-example-normalization-v1", - "channel": "open-source" - }, - "tools": { - "attendance.boss_check": { - "examples": [ - "dws attendance boss-check --help" - ] - }, - "attendance.globalsetting_save": { - "examples": [ - "dws attendance globalsetting save --help" - ] - }, - "attendance.schedule_import": { - "examples": [ - "dws attendance schedule import --help" - ] - }, - "attendance.selfsetting_save": { - "examples": [ - "dws attendance selfsetting save --help" - ] - } - } -} \ No newline at end of file diff --git a/internal/cli/schema_hints/catalog-completeness.json b/internal/cli/schema_hints/catalog-completeness.json deleted file mode 100644 index 4e8b8dcd..00000000 --- a/internal/cli/schema_hints/catalog-completeness.json +++ /dev/null @@ -1,471 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "dws-command-surface-review", - "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" - }, - "products": { - "aisearch": { - "agent_summary": "企业内智能搜人,支持按姓名、部门、职位、技能、职责、手机号或工号定位人员" - }, - "dev": { - "agent_summary": "管理钉钉开放平台应用、权限、版本、机器人、事件订阅与连接器", - "use_when": [ - "开发或维护钉钉开放平台应用", - "配置应用机器人、权限、成员、事件或发布版本" - ], - "avoid_when": [ - "只需要查询开放平台文档时优先使用 devdoc" - ] - }, - "devdoc": { - "agent_summary": "搜索钉钉开放平台开发文档并辅助排查 API 调用错误", - "use_when": [ - "搜索钉钉开放平台开发、API 或 OAuth2 接入文档", - "排查开放平台 API 调用错误、错误码、requestId 或 traceId" - ], - "avoid_when": [ - "搜索用户自己的钉钉文档时使用 drive search 或 wiki node search" - ] - }, - "pat": { - "agent_summary": "管理 DWS 操作所需的行为授权和浏览器授权策略", - "use_when": [ - "命令提示缺少行为授权", - "批量申请产品授权或配置授权浏览器策略" - ], - "avoid_when": [ - "普通 OAuth 登录使用 auth,而不是 pat" - ] - }, - "sheet": { - "agent_summary": "管理钉钉在线电子表格、工作表、单元格、筛选视图和导出任务", - "use_when": [ - "创建或管理钉钉在线电子表格和工作表", - "读取、写入或格式化单元格区域", - "管理筛选视图、图表、分组或导出任务" - ], - "avoid_when": [ - "需要多维表或 AI 表格能力时使用 aitable", - "无法判断 alidocs 链接节点类型时先查询节点元数据" - ] - }, - "wiki": { - "agent_summary": "管理钉钉知识库空间、节点、内容检索和知识库成员权限" - } - }, - "tools": { - "aitable create": { - "agent_summary": "创建 AI 表格(dws aitable base create 的别名)", - "use_when": [ - "创建 AI 表格(dws aitable base create 的别名)" - ], - "reviewed": true - }, - "chat message download-media": { - "agent_summary": "下载聊天消息中的图片/视频/语音等资源到本地文件", - "use_when": [ - "下载聊天消息中的图片/视频/语音等资源到本地文件" - ], - "reviewed": true - }, - "chat message recall-by-bot": { - "agent_summary": "机器人撤回消息(--group 群聊 / 不传为单聊)", - "use_when": [ - "机器人撤回消息(--group 群聊 / 不传为单聊)" - ], - "reviewed": true, - "effect": "destructive" - }, - "chat message send-by-bot": { - "agent_summary": "机器人发送消息(--group 群聊 / --users 单聊)", - "use_when": [ - "机器人发送消息(--group 群聊 / --users 单聊)" - ], - "reviewed": true, - "effect": "write" - }, - "chat message send": { - "agent_summary": "以当前用户身份向群聊或单聊发送文本、Markdown、图片或本地文件", - "use_when": [ - "发送普通群消息或单聊消息", - "使用当前用户身份发送图片或本地文件" - ], - "avoid_when": [ - "引用回复已有消息时使用 chat message reply", - "使用机器人身份发送时选择 send-by-bot 或 send-by-webhook" - ], - "tips": [ - "发送前确认目标和内容;文件消息使用 --msg-type file --file-path", - "需要 24 小时内防重复投递时提供稳定的 --uuid" - ], - "reviewed": true, - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "examples": [ - "dws chat message send --group --text \"项目已发布\"", - "dws chat message send --open-dingtalk-id --msg-type file --file-path ./report.pdf" - ] - }, - "chat message reply": { - "agent_summary": "以当前用户身份引用一条已有消息并回复", - "use_when": [ - "需要保留被回复消息的引用关系" - ], - "avoid_when": [ - "不需要引用上下文的普通发送使用 chat message send" - ], - "prerequisites": [ - "已取得会话 ID、原消息 ID 和原消息发送者 openDingTalkId" - ], - "tips": [ - "发送前确认引用消息、接收会话和回复内容" - ], - "reviewed": true, - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "examples": [ - "dws chat message reply --conversation-id --ref-msg-id --ref-sender --text \"收到,马上处理\"" - ] - }, - "dev app member add": { - "agent_summary": "添加开放平台应用成员", - "use_when": [ - "添加开放平台应用成员" - ], - "reviewed": true - }, - "dev app permission add": { - "agent_summary": "申请开放平台应用权限点", - "use_when": [ - "申请开放平台应用权限点" - ], - "reviewed": true, - "effect": "write" - }, - "dev connect status": { - "agent_summary": "查看后台连接器守护进程状态(pid、运行时长、日志路径)", - "use_when": [ - "查看后台连接器守护进程状态(pid、运行时长、日志路径)" - ], - "reviewed": true, - "effect": "read" - }, - "dev connect stop": { - "agent_summary": "优雅停止后台连接器守护进程(释放单实例锁与 Stream 连接)", - "use_when": [ - "优雅停止后台连接器守护进程(释放单实例锁与 Stream 连接)" - ], - "reviewed": true, - "effect": "write" - }, - "dev app create": { - "agent_summary": "创建开放平台企业内部应用", - "use_when": [ - "创建开放平台企业内部应用" - ], - "reviewed": true, - "effect": "write" - }, - "dev app version create": { - "agent_summary": "基于当前配置创建应用新版本", - "use_when": [ - "基于当前配置创建应用新版本" - ], - "reviewed": true, - "effect": "write" - }, - "dev app delete": { - "agent_summary": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)", - "use_when": [ - "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)" - ], - "reviewed": true, - "effect": "destructive" - }, - "dev app enable": { - "agent_summary": "启用开放平台企业内部应用", - "use_when": [ - "启用开放平台企业内部应用" - ], - "reviewed": true, - "effect": "write" - }, - "dev app robot enable": { - "agent_summary": "启用现有应用机器人能力(纯启用,无需配置字段)", - "use_when": [ - "启用现有应用机器人能力(纯启用,无需配置字段)" - ], - "reviewed": true, - "effect": "write" - }, - "dev app get": { - "agent_summary": "查询开放平台企业内部应用详情", - "use_when": [ - "查询开放平台企业内部应用详情" - ], - "reviewed": true, - "effect": "read" - }, - "dev app credentials get": { - "agent_summary": "读取开放平台应用凭证", - "use_when": [ - "读取开放平台应用凭证" - ], - "reviewed": true, - "effect": "read" - }, - "dev app version get": { - "agent_summary": "查询指定版本详情", - "use_when": [ - "查询指定版本详情" - ], - "reviewed": true - }, - "dev app version status": { - "agent_summary": "查询版本发布/审批状态", - "use_when": [ - "查询版本发布/审批状态" - ], - "reviewed": true, - "effect": "read" - }, - "dev app robot get": { - "agent_summary": "查询现有应用的机器人配置", - "use_when": [ - "查询现有应用的机器人配置" - ], - "reviewed": true, - "effect": "read" - }, - "dev app webapp get": { - "agent_summary": "查询网页应用配置", - "use_when": [ - "查询网页应用配置" - ], - "reviewed": true - }, - "dev app list": { - "agent_summary": "查询开放平台企业内部应用列表", - "use_when": [ - "查询开放平台企业内部应用列表" - ], - "reviewed": true, - "effect": "read" - }, - "dev app event list": { - "agent_summary": "查询应用已订阅的事件列表", - "use_when": [ - "查询应用已订阅的事件列表" - ], - "reviewed": true, - "effect": "read" - }, - "dev app member list": { - "agent_summary": "查询开放平台应用成员", - "use_when": [ - "查询开放平台应用成员" - ], - "reviewed": true - }, - "dev app permission list": { - "agent_summary": "查询开放平台应用权限列表", - "use_when": [ - "查询开放平台应用权限列表" - ], - "reviewed": true, - "effect": "read" - }, - "dev app version list": { - "agent_summary": "分页查询应用版本列表", - "use_when": [ - "分页查询应用版本列表" - ], - "reviewed": true - }, - "dev app version publish": { - "agent_summary": "发布指定版本(含高敏权限需 --confirmed-sensitive)", - "use_when": [ - "发布指定版本(含高敏权限需 --confirmed-sensitive)" - ], - "reviewed": true, - "effect": "write" - }, - "dev app robot result": { - "agent_summary": "查询机器人异步创建任务结果", - "use_when": [ - "查询机器人异步创建任务结果" - ], - "reviewed": true, - "effect": "read" - }, - "dev doc search": { - "agent_summary": "搜索开放平台文档", - "use_when": [ - "搜索开放平台文档" - ], - "reviewed": true - }, - "dev app robot config": { - "agent_summary": "创建或更新现有应用的机器人配置(upsert)", - "use_when": [ - "创建或更新现有应用的机器人配置(upsert)" - ], - "reviewed": true, - "effect": "write" - }, - "dev app webapp config": { - "agent_summary": "配置网页应用能力", - "use_when": [ - "配置网页应用能力" - ], - "reviewed": true - }, - "dev app robot submit": { - "agent_summary": "异步提交钉钉智能体机器人创建任务(支持失败重试)", - "use_when": [ - "异步提交钉钉智能体机器人创建任务(支持失败重试)" - ], - "reviewed": true, - "effect": "write" - }, - "dev app event subscribe": { - "agent_summary": "订阅应用事件回调", - "use_when": [ - "订阅应用事件回调" - ], - "reviewed": true, - "effect": "write" - }, - "dev app event unsubscribe": { - "agent_summary": "取消订阅应用事件", - "use_when": [ - "取消订阅应用事件" - ], - "reviewed": true, - "effect": "write" - }, - "dev app update": { - "agent_summary": "修改开放平台企业内部应用基础信息", - "use_when": [ - "修改开放平台企业内部应用基础信息" - ], - "reviewed": true, - "effect": "write" - }, - "dev app security config": { - "agent_summary": "更新开放平台应用安全配置", - "use_when": [ - "更新开放平台应用安全配置" - ], - "reviewed": true - }, - "doc media insert": { - "agent_summary": "上传本地文件并作为附件插入文档(3 步合一:prepare + PUT + insert)", - "use_when": [ - "上传本地文件并作为附件插入文档(3 步合一:prepare + PUT + insert)" - ], - "reviewed": true, - "effect": "write" - }, - "doc upload": { - "agent_summary": "上传文件到钉钉文档或知识库", - "use_when": [ - "上传文件到钉钉文档或知识库" - ], - "reviewed": true, - "effect": "write" - }, - "drive upload": { - "agent_summary": "上传本地文件到钉盘", - "use_when": [ - "上传本地文件到钉盘" - ], - "reviewed": true, - "effect": "write" - }, - "minutes record pause": { - "agent_summary": "暂停听记录音", - "use_when": [ - "暂停听记录音" - ], - "reviewed": true - }, - "minutes record resume": { - "agent_summary": "恢复听记录音", - "use_when": [ - "恢复听记录音" - ], - "reviewed": true - }, - "minutes record start": { - "agent_summary": "发起听记 (开始录音)", - "use_when": [ - "发起听记 (开始录音)" - ], - "reviewed": true, - "effect": "write" - }, - "minutes record stop": { - "agent_summary": "结束听记录音", - "use_when": [ - "结束听记录音" - ], - "reviewed": true, - "effect": "write" - }, - "pat browser-policy": { - "agent_summary": "配置 PAT 授权时是否打开浏览器", - "use_when": [ - "配置 PAT 授权时是否打开浏览器" - ], - "reviewed": true, - "effect": "write" - }, - "sheet filter-view get-criteria": { - "agent_summary": "查看筛选视图单列条件", - "use_when": [ - "获取单列筛选条件" - ], - "reviewed": true, - "effect": "read" - }, - "sheet filter-view info": { - "agent_summary": "查看单个筛选视图详情", - "use_when": [ - "获取单个筛选视图详情" - ], - "reviewed": true, - "effect": "read" - }, - "sheet filter-view list-criteria": { - "agent_summary": "列出筛选视图所有列条件", - "use_when": [ - "列出筛选视图所有列条件" - ], - "reviewed": true, - "effect": "read" - }, - "sheet filter-view update-criteria": { - "agent_summary": "更新筛选视图单列条件", - "use_when": [ - "更新筛选视图列条件" - ], - "reviewed": true, - "effect": "write" - }, - "sheet media-upload": { - "agent_summary": "上传附件到表格", - "use_when": [ - "上传附件到表格" - ], - "reviewed": true - } - } -} diff --git a/internal/cli/schema_hints/conference.json b/internal/cli/schema_hints/conference.json deleted file mode 100644 index 42f849b5..00000000 --- a/internal/cli/schema_hints/conference.json +++ /dev/null @@ -1,179 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "conference-schema-review" - }, - "tools": { - "conference.ai_close_camera": { - "agent_summary": "关闭摄像头", - "effect": "write", - "reviewed": true - }, - "conference.ai_close_simultaneous_interpretation": { - "agent_summary": "关闭同声传译", - "effect": "write", - "reviewed": true - }, - "conference.ai_close_subtitle": { - "agent_summary": "关闭实时字幕", - "effect": "write", - "reviewed": true - }, - "conference.ai_close_transcript": { - "agent_summary": "关闭智能听记", - "effect": "write", - "reviewed": true - }, - "conference.ai_end_meeting_for_all": { - "agent_summary": "结束整场会议并让所有参会者退出(不可逆)", - "effect": "write", - "reviewed": true, - "risk": "high", - "confirmation": "user_required" - }, - "conference.ai_leave_myself": { - "agent_summary": "本人离开当前会议(其他人继续)", - "effect": "write", - "reviewed": true - }, - "conference.ai_mute_all": { - "agent_summary": "主持人将会议内全体参会者静音", - "effect": "write", - "reviewed": true, - "risk": "medium" - }, - "conference.ai_mute_mic": { - "agent_summary": "静音自己", - "effect": "write", - "reviewed": true - }, - "conference.ai_one_click_call": { - "agent_summary": "一键呼叫所有人", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_annotation": { - "agent_summary": "打开共享批注", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_beauty_setting_page": { - "agent_summary": "打开美颜设置面板", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_camera": { - "agent_summary": "打开摄像头", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_interactive_panel": { - "agent_summary": "打开表情互动面板", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_invite_member_panel": { - "agent_summary": "打开邀请选人面板", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_security_menu": { - "agent_summary": "打开安全设置菜单", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_share_panel": { - "agent_summary": "打开共享选择面板", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_simultaneous_interpretation": { - "agent_summary": "开启同声传译", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_subtitle": { - "agent_summary": "开启实时字幕", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_transcript": { - "agent_summary": "开启智能听记", - "effect": "write", - "reviewed": true - }, - "conference.ai_open_virtual_background_setting_page": { - "agent_summary": "打开虚拟背景设置面板", - "effect": "write", - "reviewed": true - }, - "conference.ai_request_record": { - "agent_summary": "申请录制权限", - "effect": "write", - "reviewed": true - }, - "conference.ai_share_desktop": { - "agent_summary": "开始共享桌面", - "effect": "write", - "reviewed": true - }, - "conference.ai_start_cloud_record": { - "agent_summary": "开始云端录制当前会议", - "effect": "write", - "reviewed": true, - "risk": "medium" - }, - "conference.ai_stop_cloud_record": { - "agent_summary": "停止当前会议的云端录制", - "effect": "write", - "reviewed": true, - "risk": "medium" - }, - "conference.ai_stop_share": { - "agent_summary": "停止屏幕共享", - "effect": "write", - "reviewed": true - }, - "conference.ai_switch_gallery_view": { - "agent_summary": "切换宫格视图", - "effect": "write", - "reviewed": true - }, - "conference.ai_switch_speaker_view": { - "agent_summary": "切换演讲者视图", - "effect": "write", - "reviewed": true - }, - "conference.ai_switch_standard_view": { - "agent_summary": "切换标准视图", - "effect": "write", - "reviewed": true - }, - "conference.ai_take_group_photo": { - "agent_summary": "发起全员合影", - "effect": "write", - "reviewed": true - }, - "conference.ai_unmute_mic": { - "agent_summary": "取消静音", - "effect": "write", - "reviewed": true - }, - "conference.create_conference": { - "agent_summary": "发起一场即时会议", - "effect": "write", - "reviewed": true - }, - "conference.get_conference_id": { - "agent_summary": "获取当前所在会议的会议 ID(需在会议中)", - "effect": "read", - "reviewed": true - }, - "conference.get_conference_status": { - "agent_summary": "查询当前会议状态(是否在会议中)", - "effect": "read", - "reviewed": true - } - } -} diff --git a/internal/cli/schema_hints/destructive-safety.json b/internal/cli/schema_hints/destructive-safety.json deleted file mode 100644 index d0fe5d63..00000000 --- a/internal/cli/schema_hints/destructive-safety.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "destructive-safety-review" - }, - "tools": { - "aitable.advperm_role_delete": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "aitable.section_delete": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "aitable.advperm_disable": { "effect": "write", "risk": "high", "confirmation": "user_required" }, - "aitable.workflow_disable": { "effect": "write", "risk": "high", "confirmation": "user_required" }, - "chat.recall_message": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "chat.remove_custom_group_role": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "chat.remove_custom_user_roles": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "chat.remove_robot_in_group": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "dev.remove_dev_app_members": { "agent_summary": "移除开放平台应用的协作成员", "effect": "destructive", "risk": "high", "confirmation": "user_required", "reviewed": true }, - "dev.remove_dev_app_permissions": { "agent_summary": "移除开放平台应用已授予的权限点", "effect": "destructive", "risk": "high", "confirmation": "user_required", "reviewed": true }, - "dev.disable_dev_app": { "agent_summary": "停用开放平台应用,停用后应用能力对外不可用(可重新启用)", "effect": "write", "risk": "high", "confirmation": "user_required", "reviewed": true }, - "dev.disable_dev_app_robot": { "agent_summary": "停用开放平台应用的机器人(可重新启用)", "effect": "write", "risk": "high", "confirmation": "user_required", "reviewed": true }, - "doc.remove_permission": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "drive.delete_document": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "drive.permission_remove": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "mail.batch_delete_message": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "mail.batch_delete_user_mail_contacts": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "mail.delete_mail_folder": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "mail.delete_user_message_template": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "minutes.remove_member_permission": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_cond_format": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_dimension": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_dropdown_lists": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_filter": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_filter_view": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_float_image": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.delete_sheet": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "sheet.filter_view_delete_criteria": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "todo.delete_todo_comment": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "todo.remove_task_executors": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "todo.remove_task_participants": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "wiki.delete_document": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "wiki.delete_wikiSpace": { "effect": "destructive", "risk": "high", "confirmation": "user_required" }, - "wiki.remove_member": { "effect": "destructive", "risk": "high", "confirmation": "user_required" } - } -} diff --git a/internal/cli/schema_hints/imported/wukong.json b/internal/cli/schema_hints/imported/wukong.json deleted file mode 100644 index 8a2e2361..00000000 --- a/internal/cli/schema_hints/imported/wukong.json +++ /dev/null @@ -1,2148 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "imported", - "name": "dws-wukong-envelope", - "repository": "dws-wukong", - "revision": "4574f7022c32cf4c033e9b7b4156e2fec815fed8", - "channel": "prod", - "source_hash": "sha256:62d219f6115eeb6029c437965c4bcdd626e6320f53bf9d123a10e6638a286489" - }, - "coverage": { - "source_products": 31, - "matched_products": 17, - "source_tools": 279, - "eligible_tools": 245, - "matched_tools": 147, - "unmatched_tools": 98 - }, - "products": { - "aitable": { - "agent_summary": "AI 表格操作", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json" - ] - }, - "attendance": { - "agent_summary": "考勤打卡 / 排班 / 统计", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.attendance.prod.json" - ] - }, - "calendar": { - "agent_summary": "日历日程 / 会议室 / 闲忙查询", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json" - ] - }, - "chat": { - "agent_summary": "群聊 / 消息 / 机器人", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json" - ] - }, - "conference": { - "agent_summary": "视频会议 / 预约", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.conference.prod.json" - ] - }, - "contact": { - "agent_summary": "通讯录 / 用户 / 部门", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json" - ] - }, - "devdoc": { - "agent_summary": "开放平台文档搜索", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.devdoc.prod.json" - ] - }, - "ding": { - "agent_summary": "DING 消息 / 发送 / 撤回", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.ding.prod.json" - ] - }, - "doc": { - "agent_summary": "钉钉文档管理", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json" - ] - }, - "drive": { - "agent_summary": "钉盘文件管理", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json" - ] - }, - "live": { - "agent_summary": "直播列表 / 信息", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.live.prod.json" - ] - }, - "mail": { - "agent_summary": "邮箱 / 邮件收发", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json" - ] - }, - "minutes": { - "agent_summary": "AI 听记 / 会议纪要:列表 / 详情 / 摘要 / 转写 / 待办 / 思维导图 / 发言人 / 热词 / 文件上传", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json" - ] - }, - "oa": { - "agent_summary": "OA 审批 / 同意 / 拒绝 / 撤销", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json" - ] - }, - "report": { - "agent_summary": "日志:模版 / 收件箱 / 发件箱 / 单条详情 / 统计(资源.动词命令树,与 mail 对齐)", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json" - ] - }, - "sheet": { - "agent_summary": "钉钉表格管理", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json" - ] - }, - "todo": { - "agent_summary": "待办任务管理", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.todo.prod.json" - ] - } - }, - "tools": { - "aitable.attachment_upload": { - "agent_summary": "申请 attachment 字段 OSS 直传地址(不直接上传)", - "examples": [ - "dws aitable attachment upload --base-id BASE_ID --file-name report.xlsx --size 204800", - "dws aitable attachment upload --base-id BASE_ID --file-name photo.png --size 1024 --mime-type image/png" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.prepare_attachment_upload" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "prepare_attachment_upload" - } - }, - "aitable.base_create": { - "agent_summary": "创建 AI 表格 Base", - "examples": [ - "dws aitable base create --name \"项目跟踪\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.create_base" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "create_base" - } - }, - "aitable.base_delete": { - "agent_summary": "删除 Base(高风险、不可逆)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable base delete --base-id BASE_ID --yes # 查询 baseId: dws aitable base list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_base" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_base" - } - }, - "aitable.base_get": { - "agent_summary": "获取 Base 资源目录(tables、dashboards summary)", - "examples": [ - "dws aitable base get --base-id BASE_ID # 查询 baseId: dws aitable base list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_base" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_base" - } - }, - "aitable.base_list": { - "agent_summary": "获取 AI 表格列表(最近访问)", - "examples": [ - "dws aitable base list", - "dws aitable base list --limit 5 --cursor NEXT_CURSOR" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.list_bases" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "list_bases" - } - }, - "aitable.base_update": { - "agent_summary": "更新 Base 名称 / 备注", - "examples": [ - "dws aitable base update --base-id BASE_ID --name \"新名称\" # 查询 baseId: dws aitable base list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_base" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_base" - } - }, - "aitable.chart_create": { - "agent_summary": "在 dashboard 下创建 chart(需 --config 与 --layout)", - "examples": [ - "dws aitable chart create --base-id BASE_ID --dashboard-id DASHBOARD_ID --config '{\"chartName\":\"销售柱图\",\"chartType\":\"bar\",...}' --layout '{\"x\":0,\"y\":0,\"w\":6,\"h\":4}'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.create_chart" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "create_chart" - } - }, - "aitable.chart_delete": { - "agent_summary": "删除 chart(同步删除其 dashboard 布局项;不可逆)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable chart delete --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_chart" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_chart" - } - }, - "aitable.chart_get": { - "agent_summary": "获取 chart 详细信息(widget.config + 布局)", - "examples": [ - "dws aitable chart get --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_chart" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_chart" - } - }, - "aitable.chart_share_get": { - "agent_summary": "获取 chart 分享配置", - "examples": [ - "dws aitable chart share get --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_chart_share" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_chart_share" - } - }, - "aitable.chart_share_update": { - "agent_summary": "更新 chart 分享开关与类型", - "examples": [ - "dws aitable chart share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --enabled true --share-type ORG", - "dws aitable chart share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --enabled false" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_chart_share" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_chart_share" - } - }, - "aitable.chart_update": { - "agent_summary": "更新 chart 配置 / 布局", - "examples": [ - "dws aitable chart update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --config '{\"chartName\":\"新柱图名\",...}'", - "dws aitable chart update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --layout '{\"x\":0,\"y\":4,\"w\":12,\"h\":4}'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_chart" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_chart" - } - }, - "aitable.chart_widgets_example": { - "agent_summary": "返回所有图表类型的 widget config 示例(JSONC)", - "examples": [ - "dws aitable chart widgets-example" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_dashboard_widgets_example" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_dashboard_widgets_example" - } - }, - "aitable.dashboard_config_example": { - "agent_summary": "返回 dashboard config 结构示例(JSONC)", - "examples": [ - "dws aitable dashboard config-example" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_dashboard_config_example" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_dashboard_config_example" - } - }, - "aitable.dashboard_delete": { - "agent_summary": "删除 dashboard(级联删除其下 chart;不可逆)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable dashboard delete --base-id BASE_ID --dashboard-id DASHBOARD_ID --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_dashboard" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_dashboard" - } - }, - "aitable.dashboard_get": { - "agent_summary": "获取 dashboard 详情(含 charts summary)", - "examples": [ - "dws aitable dashboard get --base-id BASE_ID --dashboard-id DASHBOARD_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_dashboard" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_dashboard" - } - }, - "aitable.dashboard_share_get": { - "agent_summary": "获取 dashboard 分享配置", - "examples": [ - "dws aitable dashboard share get --base-id BASE_ID --dashboard-id DASHBOARD_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_dashboard_share" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_dashboard_share" - } - }, - "aitable.dashboard_share_update": { - "agent_summary": "更新 dashboard 分享开关与类型", - "examples": [ - "dws aitable dashboard share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --enabled true --share-type PUBLIC", - "dws aitable dashboard share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --enabled false" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_dashboard_share" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_dashboard_share" - } - }, - "aitable.export_data": { - "agent_summary": "导出数据(不传 --task-id 创建新任务并等待,传入 --task-id 继续等待)", - "examples": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel", - "dws aitable export data --base-id BASE_ID --scope table --table-id TABLE_ID --format excel", - "dws aitable export data --base-id BASE_ID --scope view --table-id TABLE_ID --view-id VIEW_ID --format excel" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.export_data" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "export_data" - } - }, - "aitable.field_delete": { - "agent_summary": "删除字段(不可逆,禁止删除主字段与最后一个字段)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable field delete --base-id BASE_ID --table-id TABLE_ID --field-id FIELD_ID --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_field" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_field" - } - }, - "aitable.field_get": { - "agent_summary": "批量获取字段详细信息(含完整配置)", - "examples": [ - "dws aitable field get --base-id BASE_ID --table-id TABLE_ID", - "dws aitable field get --base-id BASE_ID --table-id TABLE_ID --field-ids fld1,fld2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_fields" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_fields" - } - }, - "aitable.field_update": { - "agent_summary": "更新字段名称 / 配置 / AI 配置(至少传一项)", - "examples": [ - "dws aitable field update --base-id BASE_ID --table-id TABLE_ID --field-id FIELD_ID --name \"新字段名\"", - "dws aitable field update --base-id BASE_ID --table-id TABLE_ID --field-id FIELD_ID --config '{\"options\":[{\"name\":\"A\"},{\"name\":\"B\"}]}'", - "dws aitable field update --base-id BASE_ID --table-id TABLE_ID --field-id FIELD_ID --ai-config '{\"outputType\":\"text\",\"prompt\":[{\"type\":\"text\",\"value\":\"请总结\"}]}'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_field" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_field" - } - }, - "aitable.import_data": { - "agent_summary": "触发导入并等待结果;每个 Sheet 新建为独立表", - "examples": [ - "dws aitable import data --import-id IMPORT_ID", - "dws aitable import data --import-id IMPORT_ID --timeout 30" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.import_data" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "import_data" - } - }, - "aitable.import_upload": { - "agent_summary": "申请导入文件 OSS 直传地址,返回 uploadUrl 与 importId", - "examples": [ - "dws aitable import upload --base-id BASE_ID --file-name data.xlsx --file-size 204800" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.prepare_import_upload" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "prepare_import_upload" - } - }, - "aitable.query_records": { - "agent_summary": "查询记录(支持按 ID 取或 filters/sort/分页遍历)", - "examples": [ - "dws aitable record query --base-id BASE_ID --table-id TABLE_ID", - "dws aitable record query --base-id BASE_ID --table-id TABLE_ID --record-ids rec1,rec2", - "dws aitable record query --base-id BASE_ID --table-id TABLE_ID --filters '{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fld_xxx\",\"本科\"]}]}'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.query_records" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "query_records" - } - }, - "aitable.record_create": { - "agent_summary": "批量新增记录(单次最多 100 条)", - "examples": [ - "dws aitable record create --base-id BASE_ID --table-id TABLE_ID --records '[{\"cells\":{\"fldTextId\":\"文本内容\",\"fldNumId\":123}}]'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.create_records" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "create_records" - } - }, - "aitable.record_delete": { - "agent_summary": "批量删除记录(不可逆,单次最多 100 条)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable record delete --base-id BASE_ID --table-id TABLE_ID --record-ids rec1,rec2 --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_records" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_records" - } - }, - "aitable.record_update": { - "agent_summary": "批量更新记录(单次最多 100 条)", - "examples": [ - "dws aitable record update --base-id BASE_ID --table-id TABLE_ID --records '[{\"recordId\":\"recXXX\",\"cells\":{\"fldStatusId\":\"已完成\"}}]'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_records" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_records" - } - }, - "aitable.table_create": { - "agent_summary": "创建数据表并附带初始字段(最多 15 个)", - "examples": [ - "dws aitable table create --base-id BASE_ID --name \"任务表\" --fields '[{\"fieldName\":\"任务名称\",\"type\":\"text\"},{\"fieldName\":\"优先级\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"高\"},{\"name\":\"中\"},{\"name\":\"低\"}]}}]'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.create_table" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "create_table" - } - }, - "aitable.table_delete": { - "agent_summary": "删除数据表(不可逆,高风险)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable table delete --base-id BASE_ID --table-id TABLE_ID --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_table" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_table" - } - }, - "aitable.table_get": { - "agent_summary": "批量获取数据表目录与字段、视图 summary", - "examples": [ - "dws aitable table get --base-id BASE_ID", - "dws aitable table get --base-id BASE_ID --table-ids tbl1,tbl2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.get_tables" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "get_tables" - } - }, - "aitable.table_update": { - "agent_summary": "重命名数据表", - "examples": [ - "dws aitable table update --base-id BASE_ID --table-id TABLE_ID --name \"新表名\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.update_table" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_table" - } - }, - "aitable.template_search": { - "agent_summary": "按关键词搜索 AI 表格模板(不传返回热门模板)", - "examples": [ - "dws aitable template search --query \"项目管理\"", - "dws aitable template search" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.search_templates" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "search_templates" - } - }, - "aitable.view_create": { - "agent_summary": "创建视图(Grid/FormDesigner/Gantt/Calendar/Kanban/Gallery)", - "examples": [ - "dws aitable view create --base-id BASE_ID --table-id TABLE_ID --view-type Grid", - "dws aitable view create --base-id BASE_ID --table-id TABLE_ID --view-type Kanban --name \"看板视图\"", - "dws aitable view create --base-id BASE_ID --table-id TABLE_ID --view-type Grid --config '{\"visibleFieldIds\":[\"fld1\",\"fld2\"]}'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.create_view" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "create_view" - } - }, - "aitable.view_delete": { - "agent_summary": "删除视图(不可逆;禁止删除最后一个视图或锁定视图)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws aitable view delete --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.aitable.prod.json#aitable.delete_view" - ], - "interface_ref": { - "product_id": "aitable", - "rpc_name": "delete_view" - } - }, - "attendance.batch_get_employee_shifts": { - "agent_summary": "批量查询员工班次信息(间隔 ≤ 7 天,最多 50 人)", - "examples": [ - "dws attendance shift list --users userId1,userId2 --start 2026-03-03 --end 2026-03-07 # 查询 userId: dws contact user search --keyword \"姓名\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.attendance.prod.json#attendance.batch_get_employee_shifts" - ], - "interface_ref": { - "product_id": "attendance", - "rpc_name": "batch_get_employee_shifts" - } - }, - "attendance.get_attendance_summary": { - "agent_summary": "查询某个人的考勤统计摘要", - "examples": [ - "dws attendance summary --user USER_ID --date \"2026-03-12 15:00:00\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.attendance.prod.json#attendance.get_attendance_summary" - ], - "interface_ref": { - "product_id": "attendance", - "rpc_name": "get_attendance_summary" - } - }, - "attendance.get_user_attendance_record": { - "agent_summary": "查询个人考勤详情", - "examples": [ - "dws attendance record get --user USER_ID --date 2026-03-08 # 查询 userId: dws contact user search --keyword \"姓名\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.attendance.prod.json#attendance.get_user_attendance_record" - ], - "interface_ref": { - "product_id": "attendance", - "rpc_name": "get_user_attendance_record" - } - }, - "attendance.query_attendance_group_or_rules": { - "agent_summary": "查询考勤组与考勤规则", - "examples": [ - "dws attendance rules --date 2026-03-14", - "dws attendance rules --date \"2026-03-14 09:00:00\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.attendance.prod.json#attendance.query_attendance_group_or_rules" - ], - "interface_ref": { - "product_id": "attendance", - "rpc_name": "query_attendance_group_or_rules" - } - }, - "calendar.add_calendar_participant": { - "agent_summary": "添加参与者", - "examples": [ - "dws calendar participant add --event EVENT_ID --users userId1,userId2", - "dws calendar participant add --event EVENT_ID --users userId1 --optional" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.add_calendar_participant" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "add_calendar_participant" - } - }, - "calendar.add_meeting_room": { - "agent_summary": "预定会议室", - "examples": [ - "dws calendar room add --event EVENT_ID --rooms room1,room2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.add_meeting_room" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "add_meeting_room" - } - }, - "calendar.delete_calendar_event": { - "agent_summary": "删除日程", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws calendar event delete --id EVENT_ID --yes # 查询 eventId: dws calendar event list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.delete_calendar_event" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "delete_calendar_event" - } - }, - "calendar.delete_meeting_room": { - "agent_summary": "移除会议室", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws calendar room delete --event EVENT_ID --rooms room1 --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.delete_meeting_room" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "delete_meeting_room" - } - }, - "calendar.get_calendar_detail": { - "agent_summary": "获取日程详情", - "examples": [ - "dws calendar event get --id EVENT_ID # 查询 eventId: dws calendar event list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.get_calendar_detail" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "get_calendar_detail" - } - }, - "calendar.get_calendar_participants": { - "agent_summary": "查看参与者", - "examples": [ - "dws calendar participant list --event EVENT_ID # 查询 eventId: dws calendar event list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.get_calendar_participants" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "get_calendar_participants" - } - }, - "calendar.list_meeting_room_groups": { - "agent_summary": "会议室分组列表", - "examples": [ - "dws calendar room list-groups" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.list_meeting_room_groups" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "list_meeting_room_groups" - } - }, - "calendar.list_suggested_event_times": { - "agent_summary": "根据参会人推荐可用时间", - "examples": [ - "dws calendar event suggest --users userId1,userId2 --duration 60", - "dws calendar event suggest --start \"2026-03-10T09:00:00+08:00\" --end \"2026-03-10T18:00:00+08:00\" --users userId1", - "dws calendar event suggest --users userId1 --duration 30 --timezone Asia/Tokyo" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.list_suggested_event_times" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "list_suggested_event_times" - } - }, - "calendar.query_busy_status": { - "agent_summary": "查询用户闲忙状态", - "examples": [ - "dws calendar busy search --users userId1,userId2 --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T18:00:00+08:00\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.query_busy_status" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "query_busy_status" - } - }, - "calendar.remove_calendar_participant": { - "agent_summary": "移除参与者", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws calendar participant delete --event EVENT_ID --users userId1 --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.calendar.prod.json#calendar.remove_calendar_participant" - ], - "interface_ref": { - "product_id": "calendar", - "rpc_name": "remove_calendar_participant" - } - }, - "chat.add_group_member": { - "agent_summary": "向群中添加成员", - "examples": [ - "dws chat group members add --id \u003copenconversation_id\u003e --users userId1,userId2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.add_group_member" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "add_group_member" - } - }, - "chat.add_robot_to_group": { - "agent_summary": "将机器人添加到群中", - "examples": [ - "dws chat group members add-bot --robot-code \u003crobot-code\u003e --id \u003copenconversation_id\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.add_robot_to_group" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "add_robot_to_group" - } - }, - "chat.get_group_members": { - "agent_summary": "查看群成员列表", - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.get_group_members" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "get_group_members" - } - }, - "chat.list_special_focus_messages": { - "agent_summary": "拉取特别关注人的消息", - "examples": [ - "dws chat message list-focused --limit 50", - "dws chat message list-focused --limit 20 --cursor \u003cnextCursor\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.list_special_focus_messages" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "list_special_focus_messages" - } - }, - "chat.list_topic_replies": { - "agent_summary": "拉取群话题回复消息列表", - "examples": [ - "dws chat message list-topic-replies --group \u003copenconversation_id\u003e --topic-id \u003ctopicId\u003e", - "dws chat message list-topic-replies --group \u003copenconversation_id\u003e --topic-id \u003ctopicId\u003e --time \"2025-03-01 00:00:00\" --limit 20" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.list_topic_replies" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "list_topic_replies" - } - }, - "chat.remove_group_member": { - "agent_summary": "从群中移除成员", - "examples": [ - "dws chat group members remove --id \u003copenconversation_id\u003e --users userId1,userId2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.remove_group_member" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "remove_group_member" - } - }, - "chat.search_at_me_message": { - "agent_summary": "拉取 @我 的消息", - "examples": [ - "dws chat message list-mentions --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-11T00:00:00+08:00\" --limit 50 --cursor 0", - "dws chat message list-mentions --start \"2026-04-01T00:00:00+08:00\" --end \"2026-04-14T00:00:00+08:00\" --limit 20 --cursor 0", - "dws chat message list-mentions --group \u003copenconversation_id\u003e --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-11T00:00:00+08:00\" --limit 50 --cursor 0" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_at_me_message" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_at_me_message" - } - }, - "chat.search_common_groups": { - "agent_summary": "搜索共同群(指定昵称列表,查询共同所在的群聊)", - "examples": [ - "dws chat search-common --nicks \"风雷,山乔\" --limit 20 --cursor 0", - "dws chat search-common --nicks \"天鸡,乐函\" --match-mode OR --limit 20 --cursor 0", - "dws chat search-common --nicks \"风雷,山乔,天鸡\" --limit 10 --cursor \u003cnextCursor\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_common_groups" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_common_groups" - } - }, - "chat.search_groups": { - "agent_summary": "根据名称搜索会话列表", - "examples": [ - "dws chat search --query \"项目冲刺\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_groups_by_keyword" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_groups_by_keyword" - } - }, - "chat.search_messages_by_keyword": { - "agent_summary": "按关键词搜索消息", - "examples": [ - "dws chat message search --keyword \"changefree\" --start \"2026-04-01T00:00:00+08:00\" --end \"2026-04-15T00:00:00+08:00\" --limit 50 --cursor 0", - "dws chat message search --keyword \"codereview\" --group \u003copenconversation_id\u003e --start \"2026-04-01T00:00:00+08:00\" --end \"2026-04-15T00:00:00+08:00\" --limit 100 --cursor 0", - "dws chat message search --keyword \"链接\" --start \"2026-04-15T00:00:00+08:00\" --end \"2026-04-16T00:00:00+08:00\" --limit 100 --cursor \u003cnextCursor\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_messages_by_keyword" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_messages_by_keyword" - } - }, - "chat.search_messages_by_sender": { - "agent_summary": "拉取指定发送者的消息(含单聊 / 群聊;两者互斥)", - "examples": [ - "dws chat message list-by-sender --sender-user-id \u003cuserId\u003e --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-11T00:00:00+08:00\" --limit 50 --cursor 0", - "dws chat message list-by-sender --sender-open-dingtalk-id \u003copenDingTalkId\u003e --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-11T00:00:00+08:00\" --limit 50 --cursor 0", - "dws chat message list-by-sender --sender-user-id \u003cuserId\u003e --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-10T23:59:59+08:00\" --limit 20 --cursor 0" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_messages_by_sender" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_messages_by_sender" - } - }, - "chat.search_messages_by_time_range": { - "agent_summary": "拉取指定时间范围内当前用户的所有会话消息", - "examples": [ - "dws chat message list-all --start \"2025-03-01 00:00:00\" --end \"2025-03-31 23:59:59\" --limit 50", - "dws chat message list-all --start \"2025-03-01 00:00:00\" --end \"2025-03-31 23:59:59\" --limit 50 --cursor \"abc123token\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_messages_by_time_range" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_messages_by_time_range" - } - }, - "chat.search_my_robots": { - "agent_summary": "搜索我创建的机器人", - "examples": [ - "dws chat bot search --page 1", - "dws chat bot search --page 1 --size 10 --name \"日报\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.search_my_robots" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_my_robots" - } - }, - "chat.send_message_by_custom_robot": { - "agent_summary": "自定义机器人 Webhook 发送群消息", - "examples": [ - "dws chat message send-by-webhook --token \u003cwebhook-token\u003e --title \"告警\" --text \"CPU 超 90%\" --at-all", - "dws chat message send-by-webhook --token \u003cwebhook-token\u003e --title \"test\" --text \"hi @118785\" --at-users 118785" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.send_message_by_custom_robot" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "send_message_by_custom_robot" - } - }, - "chat.unread_message_conversation_list": { - "agent_summary": "获取未读会话列表", - "examples": [ - "dws chat message list-unread-conversations", - "dws chat message list-unread-conversations --count 20" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.unread_message_conversation_list" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "unread_message_conversation_list" - } - }, - "chat.update_group_name": { - "agent_summary": "更新群名称", - "examples": [ - "dws chat group rename --id \u003copenconversation_id\u003e --name \"新群名\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.chat.prod.json#chat.update_group_name" - ], - "interface_ref": { - "product_id": "chat", - "rpc_name": "update_group_name" - } - }, - "contact.get_current_user_profile": { - "agent_summary": "获取当前用户信息", - "examples": [ - "dws contact user get-self" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json#contact.get_current_user_profile" - ], - "interface_ref": { - "product_id": "contact", - "rpc_name": "get_current_user_profile" - } - }, - "contact.get_dept_members_by_deptId": { - "agent_summary": "查看部门成员(逗号分隔 deptId)", - "examples": [ - "dws contact dept list-members --ids 12345,67890 # 查询 deptId: dws contact dept list-children" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json#contact.get_dept_members_by_deptId" - ], - "interface_ref": { - "product_id": "contact", - "rpc_name": "get_dept_members_by_deptId" - } - }, - "contact.get_user_info_by_user_ids": { - "agent_summary": "批量获取用户详情(逗号分隔 userId)", - "examples": [ - "dws contact user get --ids userId1,userId2 # 查询 userId: dws contact user search --keyword \"姓名\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json#contact.get_user_info_by_user_ids" - ], - "interface_ref": { - "product_id": "contact", - "rpc_name": "get_user_info_by_user_ids" - } - }, - "contact.search_contact_by_key_word": { - "agent_summary": "按关键词搜索用户", - "examples": [ - "dws contact user search --query \"张三\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json#contact.search_contact_by_key_word" - ], - "interface_ref": { - "product_id": "contact", - "rpc_name": "search_contact_by_key_word" - } - }, - "contact.search_dept_by_keyword": { - "agent_summary": "按关键词搜索部门", - "examples": [ - "dws contact dept search --query \"技术部\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json#contact.search_dept_by_keyword" - ], - "interface_ref": { - "product_id": "contact", - "rpc_name": "search_dept_by_keyword" - } - }, - "contact.search_user_by_mobile": { - "agent_summary": "按手机号搜索用户", - "examples": [ - "dws contact user search-mobile --mobile 13800138000" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.contact.prod.json#contact.search_user_by_mobile" - ], - "interface_ref": { - "product_id": "contact", - "rpc_name": "search_user_by_mobile" - } - }, - "devdoc.search_open_platform_docs_rag": { - "agent_summary": "按关键词搜索 open.dingtalk.com 开放平台文档", - "examples": [ - "dws devdoc article search \"MCP\"", - "dws devdoc article search --query \"MCP\" --page 1 --size 10", - "dws devdoc article search --query \"openConversationId\" --page 2 --size 5" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.devdoc.prod.json#devdoc.search_open_platform_docs" - ], - "interface_ref": { - "product_id": "devdoc", - "rpc_name": "search_open_platform_docs" - } - }, - "ding.recall_ding_message": { - "agent_summary": "撤回 DING 消息", - "examples": [ - "dws ding message recall --robot-code \u003crobot-code\u003e --id \u003copen-ding-id\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.ding.prod.json#ding.recall_ding_message" - ], - "interface_ref": { - "product_id": "ding", - "rpc_name": "recall_ding_message" - } - }, - "ding.send_ding_message": { - "agent_summary": "发送 DING 消息(应用内 / 短信 / 电话)", - "examples": [ - "dws ding message send --robot-code \u003crobot-code\u003e --users userId1,userId2 --content \"请查看\"", - "dws ding message send --robot-code \u003crobot-code\u003e --type call --users userId1 --content \"紧急告警\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.ding.prod.json#ding.send_ding_message" - ], - "interface_ref": { - "product_id": "ding", - "rpc_name": "send_ding_message" - } - }, - "doc.create_comment": { - "agent_summary": "创建文档评论", - "examples": [ - "dws doc comment create --node DOC_ID --content \"这里需要修改\"", - "dws doc comment create --node DOC_ID --content \"请review\" --mention uid1,uid2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.create_comment" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "create_comment" - } - }, - "doc.create_document": { - "agent_summary": "创建一篇新的在线文档", - "examples": [ - "dws doc create --name \"项目周报\"", - "dws doc create --name \"Q1 总结\" --content \"# Q1 总结\" --folder FOLDER_ID", - "dws doc create --name \"知识库文档\" --workspace WS_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.create_document" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "create_document" - } - }, - "doc.create_file": { - "agent_summary": "创建文件(文档/表格/脑图/白板/多维表/文件夹等)", - "examples": [ - "dws doc file create --name \"项目周报\" --type adoc", - "dws doc file create --name \"数据统计\" --type axls --folder FOLDER_ID", - "dws doc file create --name \"思维导图\" --type amind --workspace WS_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.create_file" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "create_file" - } - }, - "doc.create_folder": { - "agent_summary": "创建文件夹", - "examples": [ - "dws doc folder create --name \"项目资料\"", - "dws doc folder create --name \"子文件夹\" --folder PARENT_FOLDER_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.create_folder" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "create_folder" - } - }, - "doc.delete_document_block": { - "agent_summary": "删除块元素(不可逆)", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws doc block delete --node DOC_ID --block-id BLOCK_ID --yes # 查询 nodeId: dws doc search --keyword \"...\" 或 dws doc list # 查询 blockId: dws doc block list --node \u003cnodeId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.delete_document_block" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "delete_document_block" - } - }, - "doc.get_document_content": { - "agent_summary": "读取文档内容(Markdown)", - "examples": [ - "dws doc read --node DOC_ID", - "dws doc read --node \"https://alidocs.dingtalk.com/i/nodes/\u003cDOC_UUID\u003e\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.get_document_content" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "get_document_content" - } - }, - "doc.get_document_info": { - "agent_summary": "获取文档元信息(标题/类型/创建者/权限等)", - "examples": [ - "dws doc info --node DOC_ID", - "dws doc info --node \"https://alidocs.dingtalk.com/i/nodes/\u003cDOC_UUID\u003e\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.get_document_info" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "get_document_info" - } - }, - "doc.list_comments": { - "agent_summary": "查询文档评论列表", - "examples": [ - "dws doc comment list --node DOC_ID", - "dws doc comment list --node \"https://alidocs.dingtalk.com/i/nodes/xxx\" --page-size 20", - "dws doc comment list --node DOC_ID --type inline --resolve-status unresolved" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.list_comments" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "list_comments" - } - }, - "doc.list_document_blocks": { - "agent_summary": "查询文档一级块元素列表", - "examples": [ - "dws doc block list --node DOC_ID", - "dws doc block list --node DOC_ID --start-index 0 --end-index 5", - "dws doc block list --node DOC_ID --block-type heading" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.list_document_blocks" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "list_document_blocks" - } - }, - "doc.list_nodes": { - "agent_summary": "遍历文件夹或知识库下的直接子节点", - "examples": [ - "dws doc list", - "dws doc list --folder FOLDER_ID", - "dws doc list --workspace WS_ID --page-size 20" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.list_nodes" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "list_nodes" - } - }, - "doc.reply_comment": { - "agent_summary": "回复文档评论", - "examples": [ - "dws doc comment reply --node DOC_ID --comment-key COMMENT_KEY --content \"同意\"", - "dws doc comment reply --node DOC_ID --comment-key COMMENT_KEY --content \"比心\" --emoji", - "dws doc comment reply --node DOC_ID --comment-key COMMENT_KEY --content \"请确认\" --mention uid1,uid2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.reply_comment" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "reply_comment" - } - }, - "doc.search_documents": { - "agent_summary": "搜索文档(不传关键词返回最近访问)", - "examples": [ - "dws doc search --query \"会议纪要\"", - "dws doc search", - "dws doc search --extensions pdf,docx" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.search_documents" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "search_documents" - } - }, - "doc.update_document": { - "agent_summary": "更新文档内容(追加 / 覆盖)", - "examples": [ - "dws doc update --node DOC_ID --content \"# 新内容\" --mode append", - "dws doc update --node DOC_ID --content \"# 完整替换\" --mode overwrite" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.doc.prod.json#doc.update_document" - ], - "interface_ref": { - "product_id": "doc", - "rpc_name": "update_document" - } - }, - "drive.commit_upload": { - "agent_summary": "提交文件上传", - "examples": [ - "dws drive commit --file-name \"报告.pdf\" --file-size 102400 --upload-id \u003cuploadId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json#drive.commit_upload" - ], - "interface_ref": { - "product_id": "drive", - "rpc_name": "commit_upload" - } - }, - "drive.create_folder": { - "agent_summary": "创建文件夹", - "examples": [ - "dws drive mkdir --name \"项目资料\"", - "dws drive mkdir --name \"子目录\" --parent-id \u003cdentryUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json#drive.create_folder" - ], - "interface_ref": { - "product_id": "drive", - "rpc_name": "create_folder" - } - }, - "drive.download_file": { - "agent_summary": "获取文件下载链接", - "examples": [ - "dws drive download --file-id \u003cdentryUuid\u003e # 查询 fileId: dws drive list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json#drive.download_file" - ], - "interface_ref": { - "product_id": "drive", - "rpc_name": "download_file" - } - }, - "drive.get_file_info": { - "agent_summary": "获取文件元数据信息", - "examples": [ - "dws drive info --file-id \u003cdentryUuid\u003e # 查询 fileId: dws drive list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json#drive.get_file_info" - ], - "interface_ref": { - "product_id": "drive", - "rpc_name": "get_file_info" - } - }, - "drive.get_upload_info": { - "agent_summary": "获取文件上传信息", - "examples": [ - "dws drive upload-info --file-name \"报告.pdf\" --file-size 102400", - "dws drive upload-info --file-name \"readme.txt\" --file-size 1024 --parent-id \u003cdentryUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json#drive.get_upload_info" - ], - "interface_ref": { - "product_id": "drive", - "rpc_name": "get_upload_info" - } - }, - "drive.list_files": { - "agent_summary": "获取文件/文件夹列表", - "examples": [ - "dws drive list --max 20", - "dws drive list --max 20 --parent-id \u003cdentryUuid\u003e --order-by name --order asc" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.drive.prod.json#drive.list_files" - ], - "interface_ref": { - "product_id": "drive", - "rpc_name": "list_files" - } - }, - "live.get_my_lives": { - "agent_summary": "查看我的直播列表", - "examples": [ - "dws live stream list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.live.prod.json#live.get_my_lives" - ], - "interface_ref": { - "product_id": "live", - "rpc_name": "get_my_lives" - } - }, - "mail.create_mail_folder": { - "agent_summary": "创建邮件文件夹", - "examples": [ - "dws mail folder create --email user@company.com --name \"项目资料\"", - "dws mail folder create --email user@company.com --name \"子文件夹\" --folder \u003cfolderId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.create_mail_folder" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "create_mail_folder" - } - }, - "mail.delete_mail_folder": { - "agent_summary": "删除邮件文件夹", - "examples": [ - "dws mail folder delete --email user@company.com --id \u003cfolderId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.delete_mail_folder" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "delete_mail_folder" - } - }, - "mail.get_email_by_message_id": { - "agent_summary": "查看邮件完整内容", - "examples": [ - "dws mail message get --email user@company.com --id \u003cmessageId\u003e # 查询邮箱: dws mail mailbox list; 查询邮件 ID: dws mail message search" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.get_email_by_message_id" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "get_email_by_message_id" - } - }, - "mail.get_thread": { - "agent_summary": "获取会话详情", - "examples": [ - "dws mail thread get --email user@company.com --id \u003cconversationId\u003e # 查询邮箱: dws mail mailbox list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.get_thread" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "get_thread" - } - }, - "mail.list_folders": { - "agent_summary": "列举邮件文件夹", - "examples": [ - "dws mail folder list --email user@company.com", - "dws mail folder list --email user@company.com --folder-id \u003cfolderId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.list_folders" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "list_folders" - } - }, - "mail.list_tags": { - "agent_summary": "列举邮件标签", - "examples": [ - "dws mail tag list --email user@company.com" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.list_tags" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "list_tags" - } - }, - "mail.list_user_mailboxes": { - "agent_summary": "查询可用邮箱地址", - "examples": [ - "dws mail mailbox list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.list_user_mailboxes" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "list_user_mailboxes" - } - }, - "mail.search_emails": { - "agent_summary": "搜索邮件 (KQL 语法)", - "examples": [ - "dws mail message search --email user@company.com --query \"subject:\\\"周报\\\"\" --size 20 # 查询邮箱: dws mail mailbox list", - "dws mail message search --email user@company.com --query \"from:alice AND date\u003e2025-06-01T00:00:00Z\" --size 10" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.search_emails" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "search_emails" - } - }, - "mail.send_email": { - "agent_summary": "发送邮件", - "examples": [ - "dws mail message send --from user@company.com --to colleague@company.com --subject \"周报\" --body \"本周...\" # 查询邮箱: dws mail mailbox list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.send_email" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "send_email" - } - }, - "mail.update_mail_folder": { - "agent_summary": "更新邮件文件夹", - "examples": [ - "dws mail folder update --email user@company.com --id \u003cfolderId\u003e --name \"新文件夹名\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.mail.prod.json#mail.update_mail_folder" - ], - "interface_ref": { - "product_id": "mail", - "rpc_name": "update_mail_folder" - } - }, - "minutes.add_personal_hot_word": { - "agent_summary": "添加个人热词 (优化识别专有名词 / 人名)", - "examples": [ - "dws minutes hot-word add --words \"钉钉\"", - "dws minutes hot-word add --words \"OKR,钉钉,Copilot\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.add_personal_hot_word" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "add_personal_hot_word" - } - }, - "minutes.batch_get_minutes_details": { - "agent_summary": "批量查询听记详情 (标题 / 时长 / 参与人 / 创建时间 / 状态)", - "examples": [ - "dws minutes get batch --ids uuid1,uuid2,uuid3" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.batch_get_minutes_details" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "batch_get_minutes_details" - } - }, - "minutes.cancel_upload_session": { - "agent_summary": "取消文件上传会话,释放服务端资源", - "examples": [ - "dws minutes upload cancel --session-id \u003csessionId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.cancel_upload_session" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "cancel_upload_session" - } - }, - "minutes.complete_upload_session": { - "agent_summary": "完成文件上传并创建听记(幂等:同一 sessionId 重复调用返回已有任务)", - "examples": [ - "dws minutes upload complete --session-id \u003csessionId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.complete_upload_session" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "complete_upload_session" - } - }, - "minutes.create_mind_graph": { - "agent_summary": "触发思维导图生成任务 (完成状态走 mind-graph status 轮询)", - "examples": [ - "dws minutes mind-graph create --id \u003ctaskUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.create_mind_graph" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "create_mind_graph" - } - }, - "minutes.create_upload_session": { - "agent_summary": "创建文件上传会话(获取预签名 URL,供 HTTP PUT 上传)", - "examples": [ - "dws minutes upload create --file-name \"meeting.mp4\" --file-size 102400", - "dws minutes upload create --file-name \"meeting.mp4\" --file-size 102400 --title \"周会录音\"", - "dws minutes upload create --file-name \"meeting.mp4\" --file-size 102400 --input-language \"zh\" --enable-message-card" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.create_upload_session" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "create_upload_session" - } - }, - "minutes.get_minutes_ai_summary": { - "agent_summary": "获取听记 AI 摘要 (Markdown 格式)", - "examples": [ - "dws minutes get summary --id \u003ctaskUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.get_minutes_ai_summary" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "get_minutes_ai_summary" - } - }, - "minutes.get_minutes_basic_info": { - "agent_summary": "获取听记基础信息 (创建人 / 起止时间 / 标题 / 访问链接)", - "examples": [ - "dws minutes get info --id \u003ctaskUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.get_minutes_basic_info" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "get_minutes_basic_info" - } - }, - "minutes.get_minutes_keywords": { - "agent_summary": "获取听记关键字列表", - "examples": [ - "dws minutes get keywords --id \u003ctaskUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.get_minutes_keywords" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "get_minutes_keywords" - } - }, - "minutes.get_minutes_transcription": { - "agent_summary": "获取听记语音转写原文 (含发言人 / 时间戳)", - "examples": [ - "dws minutes get transcription --id \u003ctaskUuid\u003e", - "dws minutes get transcription --id \u003ctaskUuid\u003e --direction 1" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.get_minutes_transcription" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "get_minutes_transcription" - } - }, - "minutes.list_minutes_todos": { - "agent_summary": "获取听记中提取的待办事项", - "examples": [ - "dws minutes get todos --id \u003ctaskUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.list_minutes_todos" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "list_minutes_todos" - } - }, - "minutes.query_mind_graph_status": { - "agent_summary": "查询思维导图任务状态 (0=进行中 / 1=成功 / 2=失败)", - "examples": [ - "dws minutes mind-graph status --id \u003ctaskUuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.query_mind_graph_status" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "query_mind_graph_status" - } - }, - "minutes.replace_minutes_text": { - "agent_summary": "在段落 + 纪要中全量替换文字 (区分大小写,精确匹配)", - "examples": [ - "dws minutes replace-text --id \u003ctaskUuid\u003e --search \"旧文字\" --replace \"新文字\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.replace_minutes_text" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "replace_minutes_text" - } - }, - "minutes.replace_speaker": { - "agent_summary": "批量替换听记中指定发言人", - "examples": [ - "dws minutes speaker replace --id \u003ctaskUuid\u003e --from \"张三\" --to \"李四\"", - "dws minutes speaker replace --id \u003ctaskUuid\u003e --from \"张三\" --to \"李四\" --target-uid \u003cuid\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.replace_speaker" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "replace_speaker" - } - }, - "minutes.update_minutes_summary": { - "agent_summary": "全量覆盖纪要内容 (不触发 AI 重算)", - "examples": [ - "dws minutes update summary --id \u003ctaskUuid\u003e --content \"新的纪要内容\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.update_minutes_summary" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "update_minutes_summary" - } - }, - "minutes.update_minutes_title": { - "agent_summary": "修改听记标题", - "examples": [ - "dws minutes update title --id \u003ctaskUuid\u003e --title \"Q2 复盘会议\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.minutes.prod.json#minutes.update_minutes_title" - ], - "interface_ref": { - "product_id": "minutes", - "rpc_name": "update_minutes_title" - } - }, - "oa.approve_processInstance": { - "agent_summary": "同意审批", - "examples": [ - "dws oa approval approve --instance-id \u003cid\u003e --task-id \u003ctaskId\u003e # 查询 instanceId: dws oa approval list-pending; taskId 来自 dws oa approval tasks", - "dws oa approval approve --instance-id \u003cid\u003e --task-id \u003ctaskId\u003e --remark \"同意\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.approve_processInstance" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "approve_processInstance" - } - }, - "oa.get_processInstance_detail": { - "agent_summary": "获取审批实例详情", - "examples": [ - "dws oa approval detail --instance-id \u003cprocessInstanceId\u003e # 查询 instanceId: dws oa approval list-pending" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.get_processInstance_detail" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "get_processInstance_detail" - } - }, - "oa.get_processInstance_records": { - "agent_summary": "获取审批操作记录", - "examples": [ - "dws oa approval records --instance-id \u003cprocessInstanceId\u003e # 查询 instanceId: dws oa approval list-pending" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.get_processInstance_records" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "get_processInstance_records" - } - }, - "oa.list_initiated_instances": { - "agent_summary": "查询已发起的审批实例列表", - "examples": [ - "dws oa approval list-initiated --process-code \u003ccode\u003e --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-10T23:59:59+08:00\" --next-token 0 --max-results 20 # processCode 来自管理后台配置" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.list_initiated_instances" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "list_initiated_instances" - } - }, - "oa.list_pending_approvals": { - "agent_summary": "查询待我处理的审批", - "examples": [ - "dws oa approval list-pending --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-10T23:59:59+08:00\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.list_pending_approvals" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "list_pending_approvals" - } - }, - "oa.list_pending_tasks": { - "agent_summary": "查询待我审批的任务 ID", - "examples": [ - "dws oa approval tasks --instance-id \u003cprocessInstanceId\u003e # 查询 instanceId: dws oa approval list-pending" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.list_pending_tasks" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "list_pending_tasks" - } - }, - "oa.list_user_visible_process": { - "agent_summary": "获取当前用户可见的审批表单列表", - "examples": [ - "dws oa approval list-forms --cursor 0 --size 100" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.list_user_visible_process" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "list_user_visible_process" - } - }, - "oa.reject_processInstance": { - "agent_summary": "拒绝审批", - "examples": [ - "dws oa approval reject --instance-id \u003cid\u003e --task-id \u003ctaskId\u003e --remark \"不同意\" # 查询 instanceId: dws oa approval list-pending; taskId 来自 dws oa approval tasks" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.reject_processInstance" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "reject_processInstance" - } - }, - "oa.revoke_processInstance": { - "agent_summary": "撤销已发起的审批", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws oa approval revoke --instance-id \u003cid\u003e --yes # 查询 instanceId: dws oa approval list-pending", - "dws oa approval revoke --instance-id \u003cid\u003e --remark \"误发起\" --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.oa.prod.json#oa.revoke_processInstance" - ], - "interface_ref": { - "product_id": "oa", - "rpc_name": "revoke_processInstance" - } - }, - "report.create_report": { - "agent_summary": "提交一份新日报(按模版)", - "examples": [ - "dws report entry submit --template-id TPL_ID --contents '[{\"content\":\"完成开发\",\"sort\":\"0\",\"key\":\"今日完成\",\"contentType\":\"markdown\",\"type\":\"1\"}]'", - "dws report entry submit --template-id TPL_ID --contents-file ./report.json", - "dws report entry submit --template-id TPL_ID --contents '[...]' --to-chat --to-user-ids userId1,userId2" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.create_report" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "create_report" - } - }, - "report.get_available_report_templates": { - "agent_summary": "获取当前用户可用的日志模版列表", - "examples": [ - "dws report template list" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.get_available_report_templates" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "get_available_report_templates" - } - }, - "report.get_received_report_list": { - "agent_summary": "列出我收到的日报", - "examples": [ - "dws report inbox list --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-10T23:59:59+08:00\" --cursor 0 --size 20" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.get_received_report_list" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "get_received_report_list" - } - }, - "report.get_report_entry_details": { - "agent_summary": "读取单份日报正文(含字段明细 + 钉钉跳转链接)", - "examples": [ - "dws report entry get --report-id \u003creportId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.get_report_entry_details" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "get_report_entry_details" - } - }, - "report.get_report_statistics_by_id": { - "agent_summary": "读取单份日报的已读统计", - "examples": [ - "dws report entry stats --report-id \u003creportId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.get_report_statistics_by_id" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "get_report_statistics_by_id" - } - }, - "report.get_send_report_list": { - "agent_summary": "列出我发出的日报", - "examples": [ - "dws report outbox list --cursor 0 --size 20", - "dws report outbox list --cursor 0 --size 20 --start \"2026-03-10T00:00:00+08:00\" --end \"2026-03-10T23:59:59+08:00\"", - "dws report outbox list --cursor 0 --size 20 --template-name \"日报\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.get_send_report_list" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "get_send_report_list" - } - }, - "report.get_template_details_by_name": { - "agent_summary": "读取单个日志模版的字段定义", - "examples": [ - "dws report template get --name \u003ctemplateName\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.report.prod.json#report.get_template_details_by_name" - ], - "interface_ref": { - "product_id": "report", - "rpc_name": "get_template_details_by_name" - } - }, - "sheet.create_sheet": { - "agent_summary": "新建工作表", - "examples": [ - "dws sheet new --node NODE_ID --name \"Sheet2\"", - "dws sheet new --node NODE_ID --name \"数据汇总\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json#sheet.create_sheet" - ], - "interface_ref": { - "product_id": "sheet", - "rpc_name": "create_sheet" - } - }, - "sheet.create_workspace_sheet": { - "agent_summary": "创建钉钉表格文档", - "examples": [ - "dws sheet create --name \"销售数据\"", - "dws sheet create --name \"Q1 数据\" --folder FOLDER_ID", - "dws sheet create --name \"知识库表格\" --workspace WS_ID" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json#sheet.create_workspace_sheet" - ], - "interface_ref": { - "product_id": "sheet", - "rpc_name": "create_workspace_sheet" - } - }, - "sheet.get_all_sheets": { - "agent_summary": "获取全部工作表列表", - "examples": [ - "dws sheet list --node NODE_ID", - "dws sheet list --node \"https://alidocs.dingtalk.com/i/nodes/\u003cDOC_UUID\u003e\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json#sheet.get_all_sheets" - ], - "interface_ref": { - "product_id": "sheet", - "rpc_name": "get_all_sheets" - } - }, - "sheet.info": { - "agent_summary": "获取指定工作表详情", - "examples": [ - "dws sheet info --node NODE_ID", - "dws sheet info --node NODE_ID --sheet-id SHEET_ID", - "dws sheet info --node NODE_ID --sheet-id \"Sheet1\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json#sheet.get_sheet" - ], - "interface_ref": { - "product_id": "sheet", - "rpc_name": "get_sheet" - } - }, - "sheet.range_read": { - "agent_summary": "读取工作表数据", - "examples": [ - "dws sheet range read --node NODE_ID", - "dws sheet range read --node NODE_ID --sheet-id SHEET_ID", - "dws sheet range read --node NODE_ID --sheet-id \"Sheet1\" --range \"A1:D10\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json#sheet.get_range" - ], - "interface_ref": { - "product_id": "sheet", - "rpc_name": "get_range" - } - }, - "sheet.range_update": { - "agent_summary": "更新工作表指定区域内容(--values 与 --hyperlinks 至少传一项)", - "examples": [ - "dws sheet range update --node NODE_ID --sheet-id SHEET_ID --range \"A1:B2\" --values '[[\"姓名\",\"分数\"],[\"张三\",90]]'", - "dws sheet range update --node NODE_ID --sheet-id SHEET_ID --range \"C2\" --values '[[\"=A2\u0026B2\"]]'", - "dws sheet range update --node NODE_ID --sheet-id SHEET_ID --range \"A1\" --hyperlinks '[[{\"type\":\"path\",\"link\":\"https://dingtalk.com\",\"text\":\"钉钉\"}]]'" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.sheet.prod.json#sheet.update_range" - ], - "interface_ref": { - "product_id": "sheet", - "rpc_name": "update_range" - } - }, - "todo.create_personal_todo": { - "agent_summary": "创建待办", - "examples": [ - "dws todo task create --title \"修复线上Bug\" --executors userId1,userId2 --priority 40", - "dws todo task create --title \"提交报告\" --executors userId1 --due \"2026-03-10T18:00:00+08:00\"" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.todo.prod.json#todo.create_personal_todo" - ], - "interface_ref": { - "product_id": "todo", - "rpc_name": "create_personal_todo" - } - }, - "todo.delete_todo": { - "agent_summary": "删除待办", - "risk": "high", - "confirmation": "user_required", - "examples": [ - "dws todo task delete --task-id \u003ctaskId\u003e", - "dws todo task delete --task-id \u003ctaskId\u003e --yes" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.todo.prod.json#todo.delete_todo" - ], - "interface_ref": { - "product_id": "todo", - "rpc_name": "delete_todo" - } - }, - "todo.get_todo_detail": { - "agent_summary": "待办详情", - "examples": [ - "dws todo task get --task-id \u003ctaskId\u003e" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.todo.prod.json#todo.get_todo_detail" - ], - "interface_ref": { - "product_id": "todo", - "rpc_name": "get_todo_detail" - } - }, - "todo.update_todo_done_status": { - "agent_summary": "修改执行者的待办完成状态", - "examples": [ - "dws todo task done --task-id \u003ctaskId\u003e --status true", - "dws todo task done --task-id \u003ctaskId\u003e --status false" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.todo.prod.json#todo.update_todo_done_status" - ], - "interface_ref": { - "product_id": "todo", - "rpc_name": "update_todo_done_status" - } - }, - "todo.update_todo_task": { - "agent_summary": "修改待办任务", - "examples": [ - "dws todo task update --task-id \u003ctaskId\u003e --title \"新标题\"", - "dws todo task update --task-id \u003ctaskId\u003e --priority 40 --due \"2026-03-10T18:00:00+08:00\"", - "dws todo task update --task-id \u003ctaskId\u003e --done true" - ], - "source_refs": [ - "dws-wukong-envelope@4574f7022c32:dws-wukong-discovery.todo.prod.json#todo.update_todo_task" - ], - "interface_ref": { - "product_id": "todo", - "rpc_name": "update_todo_task" - } - } - } -} diff --git a/internal/cli/schema_hints/index.json b/internal/cli/schema_hints/index.json deleted file mode 100644 index 2ef93905..00000000 --- a/internal/cli/schema_hints/index.json +++ /dev/null @@ -1,992 +0,0 @@ -{ - "version": 1, - "format": "dws-agent-hint-index", - "source": { - "kind": "explicit", - "name": "dws-agent-hints", - "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" - }, - "metadata": {}, - "selection": {}, - "reference_review": { - "agoal contract detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal contract fields": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal contract list": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal contract update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal obj-template create-or-update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal obj-template list": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal report list-statistics": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal report submit-detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal scorecard detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal scorecard entity-detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal scorecard update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal strategy detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal strategy list": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal strategy update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal user objectives": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal user rules": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "aisearch contact": { - "status": "alias", - "target": "aisearch person", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "aitable form create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form field hide": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form field list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form field update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form questions create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form share get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form share update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable view update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance adjustment get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance adjustment search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance approve": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance approve list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance approve templates": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance boss-check": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance check record": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance check result": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance checkin records": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance globalsetting get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance globalsetting save": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group filtered-get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group update-members": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance overtime get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance overtime search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance read_file": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance report columns": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance report query-data": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance report query-leave": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance schedule get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance schedule import": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance selfsetting get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance selfsetting save": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation balance": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation records": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation save-balance": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation types": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation update-type": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "calendar acl add": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "calendar acl delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "calendar book update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category add-conv": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category create-smart": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category remove-conv": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category rename": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat clear-all-red-point": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat clear-messages": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat clear-red-point": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat data-auth cross-org": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group audit-join-validation": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group list-all": { - "status": "alias", - "target": "chat group list-my-groups", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "chat group list-join-validations": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group members": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "chat group members list-by-ids": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice create/edit/get/list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice edit": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group share-invite": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group update-alias": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group update-nick": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat hide": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat list-all-conversations": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat mark-read": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat mark-unread": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat message list-emotion-replies": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat message set-top-msg": { - "status": "alias", - "target": "chat message set-pin-msg", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "chat message unset-top-msg": { - "status": "alias", - "target": "chat message unset-pin-msg", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "chat mute-at-all": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat mute-red-envelope": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat text translate": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact label get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact label list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact label list-members": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact user current": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "contact user me": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "contact user self": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "contact user whoami": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "dev connect": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "ding message list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "ding message recall-personal": { - "status": "alias", - "target": "ding message recall", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "ding message receiver-status": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "ding message send-by-message": { - "status": "alias", - "target": "ding message send", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "ding message send-personal": { - "status": "alias", - "target": "ding message send", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "doc aitable base create": { - "status": "alias", - "target": "aitable base create", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc block": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "doc copy + doc rename + doc block update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc drive download": { - "status": "alias", - "target": "drive download", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc drive list": { - "status": "alias", - "target": "drive list", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc drive mkdir": { - "status": "alias", - "target": "drive mkdir", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc drive search": { - "status": "alias", - "target": "drive search", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc export": { - "status": "alias", - "target": "doc export get", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc import": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc import get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc permission": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "doc read + doc create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc sheet create": { - "status": "alias", - "target": "sheet create", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc wiki member add": { - "status": "alias", - "target": "wiki member add", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc wiki node create": { - "status": "alias", - "target": "wiki node create", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "drive": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "drive publish get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive publish set": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive publish unset": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive recent": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive recycle list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive recycle restore": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive wiki space list": { - "status": "alias", - "target": "wiki space list", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "event consume user_im_message_receive_at -f ndjson": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 和输出参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_at": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_user": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_o2o_all -f ndjson": { - "status": "alias", - "target": "event consume", - "reason": "已审查的全量单聊事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_group_all -f ndjson": { - "status": "alias", - "target": "event consume", - "reason": "已审查的全量群消息事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_read_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_read_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_recall_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_recall_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_reaction_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_reaction_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_updated": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群标题变更事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_member_added": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群成员加入事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_member_exited": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群成员退出事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_disbanded": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群解散事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event schema user_im_message_receive_at": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_user": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_o2o_all": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_group_all": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_read_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_read_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_recall_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_recall_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_reaction_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_reaction_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_updated": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_member_added": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_member_exited": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_disbanded": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "mail aisearch person": { - "status": "alias", - "target": "aisearch person", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "mail allow-list add": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail allow-list list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail allow-list list/add/remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail allow-list remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail auto-reply get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail auto-reply update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list add": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list list/add/remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail internetMessageId": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail mailbox profile": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail message batch-get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail message batch-update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail message verify": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule adjust": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail sent-message recall": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail sent-message recall-detail": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail tag create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail tag delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail tag update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread batch-trash": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread batch-update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread trash": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "minutes": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "oa approval": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "oa approval append-task": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval ding-info": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval revert-activities": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval revert-task": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval search-forms": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "sheet batch-update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet doc download": { - "status": "alias", - "target": "doc download", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "sheet filter-view": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "sheet formulaCondition": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet group-dimension": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet range": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "sheet range batch-clear": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet range get": { - "status": "alias", - "target": "sheet range read", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "sheet ungroup-dimension": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "todo task list-sub": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "todo task remove-attachment": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "wiki": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "wiki drive search": { - "status": "alias", - "target": "drive search", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "wiki member": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "wiki node": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "wiki space": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - } - } -} diff --git a/internal/cli/schema_hints/interface-refs.json b/internal/cli/schema_hints/interface-refs.json deleted file mode 100644 index 18fb962a..00000000 --- a/internal/cli/schema_hints/interface-refs.json +++ /dev/null @@ -1,432 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "open-source-helper-interface-refs" - }, - "tools": { - "aitable.advperm_disable": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "set_advanced_permission"} - }, - "aitable.advperm_enable": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "set_advanced_permission"} - }, - "aitable.advperm_role_create": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "create_role"} - }, - "aitable.advperm_role_delete": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "delete_role"} - }, - "aitable.advperm_role_get": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_role"} - }, - "aitable.advperm_role_list": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "list_roles"} - }, - "aitable.advperm_role_update": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "patch_role"} - }, - "aitable.base_copy": { - "interface_ref": {"product_id": "aitable", "rpc_name": "copy_base"} - }, - "aitable.base_get_primary_doc_id": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_base_primary_doc_id"} - }, - "aitable.base_search": { - "interface_ref": {"product_id": "aitable", "rpc_name": "search_bases"} - }, - "aitable.create": { - "interface_ref": {"product_id": "aitable", "rpc_name": "create_base"} - }, - "aitable.dashboard_arrange": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "align_dashboard"} - }, - "aitable.dashboard_create": { - "interface_ref": {"product_id": "aitable", "rpc_name": "create_dashboard"} - }, - "aitable.dashboard_update": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_dashboard"} - }, - "aitable.field_create": { - "interface_ref": {"product_id": "aitable", "rpc_name": "create_fields"} - }, - "aitable.field_list": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_fields"} - }, - "aitable.field_search_options": { - "interface_ref": {"product_id": "aitable", "rpc_name": "search_field_options"} - }, - "aitable.info": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_base"} - }, - "aitable.list": { - "interface_ref": {"product_id": "aitable", "rpc_name": "list_bases"} - }, - "aitable.record_get": { - "interface_ref": {"product_id": "aitable", "rpc_name": "query_records"} - }, - "aitable.record_history_list": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "query_record_history"} - }, - "aitable.record_primary_doc_create": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "create_primary_doc"} - }, - "aitable.record_primary_doc_get": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_primary_doc"} - }, - "aitable.record_query_empty": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "query_empty_records"} - }, - "aitable.record_share_url": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_record_share_url"} - }, - "aitable.record_upsert": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "record_upsert"} - }, - "aitable.search": { - "interface_ref": {"product_id": "aitable", "rpc_name": "search_bases"} - }, - "aitable.section_create": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "create_section"} - }, - "aitable.section_delete": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "delete_section"} - }, - "aitable.section_list_empty": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "list_empty_sections"} - }, - "aitable.section_list_nodes": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "list_nsheet_nodes"} - }, - "aitable.section_move_node": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "move_nsheet_node"} - }, - "aitable.section_rename": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "rename_section"} - }, - "aitable.section_reorder": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "reorder_section"} - }, - "aitable.table_list": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_tables"} - }, - "aitable.view_duplicate": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "duplicate_view"} - }, - "aitable.view_get_aggregate": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_card": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_field_widths": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_fill_color_rule": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_filter": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_frozen_cols": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_frozen_columns_of_view"} - }, - "aitable.view_get_group": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_lock": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_view_lock_status"} - }, - "aitable.view_get_row_height": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_cell_height_of_view"} - }, - "aitable.view_get_sort": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_timebar": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_get_visible_fields": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_list": { - "interface_ref": {"product_id": "aitable", "rpc_name": "get_views"} - }, - "aitable.view_lock": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "lock_or_unlock_view"} - }, - "aitable.view_update_aggregate": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_card": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_field_widths": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_fill_color_rule": { - "interface_ref": {"product_id": "aitable", "rpc_name": "set_view_fill_color_rule"} - }, - "aitable.view_update_filter": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_frozen_cols": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "set_frozen_columns_of_view"} - }, - "aitable.view_update_group": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_name": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_row_height": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "set_cell_height_of_view"} - }, - "aitable.view_update_sort": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_timebar": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.view_update_visible_fields": { - "interface_ref": {"product_id": "aitable", "rpc_name": "update_view"} - }, - "aitable.workflow_disable": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "disable_workflow"} - }, - "aitable.workflow_enable": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "enable_workflow"} - }, - "aitable.workflow_get": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "get_workflow"} - }, - "aitable.workflow_list": { - "interface_ref": {"product_id": "aitable-helper", "rpc_name": "list_workflows"} - }, - "chat.add_robot_to_group": { - "interface_ref": {"product_id": "bot", "rpc_name": "add_robot_to_group"} - }, - "chat.create_smart_conv_category": { - "interface_ref": {"product_id": "im", "rpc_name": "create_smart_conv_category"} - }, - "chat.create_group_conversation": { - "interface_ref": {"product_id": "im", "rpc_name": "create_group_conversation"} - }, - "chat.list_group_bots": { - "interface_ref": {"product_id": "bot", "rpc_name": "list_group_bots"} - }, - "chat.remove_robot_in_group": { - "interface_ref": {"product_id": "bot", "rpc_name": "remove_robot_in_group"} - }, - "chat.reply_personal_message": { - "interface_ref": {"product_id": "chat", "rpc_name": "send_personal_message"} - }, - "chat.search_bots": { - "interface_ref": {"product_id": "bot", "rpc_name": "search_bots"} - }, - "chat.search_my_robots": { - "interface_ref": {"product_id": "bot", "rpc_name": "search_my_robots"} - }, - "chat.send_message_by_custom_robot": { - "interface_ref": {"product_id": "bot", "rpc_name": "send_message_by_custom_robot"} - }, - "chat.send_personal_message": { - "interface_ref": {"product_id": "chat", "rpc_name": "send_personal_message"} - }, - "dev.add_dev_app_members": { - "interface_ref": {"product_id": "devapp", "rpc_name": "add_dev_app_members"} - }, - "dev.apply_dev_app_permissions": { - "interface_ref": {"product_id": "devapp", "rpc_name": "apply_dev_app_permissions"} - }, - "dev.create_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "create_dev_app"} - }, - "dev.create_dev_app_version": { - "interface_ref": {"product_id": "devapp", "rpc_name": "create_dev_app_version"} - }, - "dev.delete_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "delete_dev_app"} - }, - "dev.disable_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "disable_dev_app"} - }, - "dev.disable_dev_app_robot": { - "interface_ref": {"product_id": "devapp", "rpc_name": "disable_dev_app_robot"} - }, - "dev.enable_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "enable_dev_app"} - }, - "dev.enable_dev_app_robot": { - "interface_ref": {"product_id": "devapp", "rpc_name": "enable_dev_app_robot"} - }, - "dev.get_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "get_dev_app"} - }, - "dev.get_dev_app_credentials": { - "interface_ref": {"product_id": "devapp", "rpc_name": "get_dev_app_credentials"} - }, - "dev.get_dev_app_version_detail": { - "interface_ref": {"product_id": "devapp", "rpc_name": "get_dev_app_version_detail"} - }, - "dev.get_dev_app_version_status": { - "interface_ref": {"product_id": "devapp", "rpc_name": "get_dev_app_version_status"} - }, - "dev.get_extension_robot_config": { - "interface_ref": {"product_id": "devapp", "rpc_name": "get_extension_robot_config"} - }, - "dev.get_extension_webapp_config": { - "interface_ref": {"product_id": "devapp", "rpc_name": "get_extension_webapp_config"} - }, - "dev.list_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "list_dev_app"} - }, - "dev.list_dev_app_events": { - "interface_ref": {"product_id": "devapp", "rpc_name": "list_dev_app_events"} - }, - "dev.list_dev_app_members": { - "interface_ref": {"product_id": "devapp", "rpc_name": "list_dev_app_members"} - }, - "dev.list_dev_app_permissions": { - "interface_ref": {"product_id": "devapp", "rpc_name": "list_dev_app_permissions"} - }, - "dev.list_dev_app_versions": { - "interface_ref": {"product_id": "devapp", "rpc_name": "list_dev_app_versions"} - }, - "dev.publish_dev_app_version": { - "interface_ref": {"product_id": "devapp", "rpc_name": "publish_dev_app_version"} - }, - "dev.query_robot_create_result": { - "interface_ref": {"product_id": "devapp", "rpc_name": "query_robot_create_result"} - }, - "dev.remove_dev_app_members": { - "interface_ref": {"product_id": "devapp", "rpc_name": "remove_dev_app_members"} - }, - "dev.remove_dev_app_permissions": { - "interface_ref": {"product_id": "devapp", "rpc_name": "remove_dev_app_permissions"} - }, - "dev.search_open_platform_docs_rag": { - "interface_ref": {"product_id": "devdoc", "rpc_name": "search_open_platform_docs"} - }, - "dev.set_extension_robot_config": { - "interface_ref": {"product_id": "devapp", "rpc_name": "set_extension_robot_config"} - }, - "dev.set_extension_webapp_config": { - "interface_ref": {"product_id": "devapp", "rpc_name": "set_extension_webapp_config"} - }, - "dev.submit_robot_create_task": { - "interface_ref": {"product_id": "devapp", "rpc_name": "submit_robot_create_task"} - }, - "dev.subscribe_dev_app_events": { - "interface_ref": {"product_id": "devapp", "rpc_name": "subscribe_dev_app_events"} - }, - "dev.unsubscribe_dev_app_events": { - "interface_ref": {"product_id": "devapp", "rpc_name": "unsubscribe_dev_app_events"} - }, - "dev.update_dev_app": { - "interface_ref": {"product_id": "devapp", "rpc_name": "update_dev_app"} - }, - "dev.update_dev_app_security_config": { - "interface_ref": {"product_id": "devapp", "rpc_name": "update_dev_app_security_config"} - }, - "doc.create_comment": { - "interface_ref": {"product_id": "doc-comment", "rpc_name": "create_comment"} - }, - "doc.create_inline_comment": { - "interface_ref": {"product_id": "doc-comment", "rpc_name": "create_inline_comment"} - }, - "doc.list_comments": { - "interface_ref": {"product_id": "doc-comment", "rpc_name": "list_comments"} - }, - "doc.reply_comment": { - "interface_ref": {"product_id": "doc-comment", "rpc_name": "reply_comment"} - }, - "drive.add_permission": { - "interface_ref": {"product_id": "doc", "rpc_name": "add_permission"} - }, - "drive.copy_document": { - "interface_ref": {"product_id": "doc", "rpc_name": "copy_document"} - }, - "drive.delete_document": { - "interface_ref": {"product_id": "doc", "rpc_name": "delete_document"} - }, - "drive.list_permission": { - "interface_ref": {"product_id": "doc", "rpc_name": "list_permission"} - }, - "drive.move_document": { - "interface_ref": {"product_id": "doc", "rpc_name": "move_document"} - }, - "drive.permission_remove": { - "interface_ref": {"product_id": "doc", "rpc_name": "remove_permission"} - }, - "drive.permission_update": { - "interface_ref": {"product_id": "doc", "rpc_name": "update_permission"} - }, - "drive.rename_document": { - "interface_ref": {"product_id": "doc", "rpc_name": "rename_document"} - }, - "minutes.record_pause": { - "interface_ref": {"product_id": "minutes", "rpc_name": "执行听记指令-发起AI听记录音"} - }, - "minutes.record_resume": { - "interface_ref": {"product_id": "minutes", "rpc_name": "执行听记指令-发起AI听记录音"} - }, - "minutes.record_start": { - "interface_ref": {"product_id": "minutes", "rpc_name": "执行听记指令-发起AI听记录音"} - }, - "minutes.record_stop": { - "interface_ref": {"product_id": "minutes", "rpc_name": "执行听记指令-发起AI听记录音"} - }, - "pat.batch_grant": { - "interface_ref": {"product_id": "pat", "rpc_name": "pat.batch_grant"} - }, - "sheet.filter_clear_criteria": { - "interface_ref": {"product_id": "sheet", "rpc_name": "clear_filter_criteria"} - }, - "sheet.filter_view_delete_criteria": { - "interface_ref": {"product_id": "sheet", "rpc_name": "clear_filter_view_criteria"} - }, - "sheet.filter_view_get_criteria": { - "interface_ref": {"product_id": "sheet", "rpc_name": "get_filter_views"} - }, - "sheet.filter_view_info": { - "interface_ref": {"product_id": "sheet", "rpc_name": "get_filter_views"} - }, - "sheet.filter_view_list_criteria": { - "interface_ref": {"product_id": "sheet", "rpc_name": "get_filter_views"} - }, - "sheet.filter_view_update_criteria": { - "interface_ref": {"product_id": "sheet", "rpc_name": "set_filter_view_criteria"} - }, - "sheet.range_batch_set_style": { - "interface_ref": {"product_id": "sheet", "rpc_name": "update_range"} - }, - "sheet.range_copy_to": { - "interface_ref": {"product_id": "sheet", "rpc_name": "copy_range"} - }, - "sheet.range_move_to": { - "interface_ref": {"product_id": "sheet", "rpc_name": "move_range"} - }, - "sheet.range_set_style": { - "interface_ref": {"product_id": "sheet", "rpc_name": "update_range"} - }, - "wiki.create_file": { - "interface_ref": {"product_id": "doc", "rpc_name": "create_file"} - }, - "wiki.delete_document": { - "interface_ref": {"product_id": "doc", "rpc_name": "delete_document"} - }, - "wiki.list_nodes": { - "interface_ref": {"product_id": "doc", "rpc_name": "list_nodes"} - }, - "wiki.node_copy": { - "interface_ref": {"product_id": "doc", "rpc_name": "copy_document"} - }, - "wiki.node_move": { - "interface_ref": {"product_id": "doc", "rpc_name": "move_document"} - }, - "wiki.node_search": { - "interface_ref": {"product_id": "doc", "rpc_name": "search_documents"} - } - } -} diff --git a/internal/cli/schema_hints/reference-review.json b/internal/cli/schema_hints/reference-review.json deleted file mode 100644 index 8ae91844..00000000 --- a/internal/cli/schema_hints/reference-review.json +++ /dev/null @@ -1,989 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "skill-reference-review-v1", - "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" - }, - "reference_review": { - "agoal contract detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal contract fields": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal contract list": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal contract update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal obj-template create-or-update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal obj-template list": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal report list-statistics": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal report submit-detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal scorecard detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal scorecard entity-detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal scorecard update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal strategy detail": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal strategy list": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal strategy update": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal user objectives": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "agoal user rules": { - "status": "out_of_surface", - "reason": "该产品不在当前 21 产品公开命令面中" - }, - "aisearch contact": { - "status": "alias", - "target": "aisearch person", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "aitable form create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form field hide": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form field list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form field update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form questions create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form share get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form share update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable form update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "aitable view update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance adjustment get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance adjustment search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance approve": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance approve list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance approve templates": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance boss-check": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance check record": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance check result": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance checkin records": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance class update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance globalsetting get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance globalsetting save": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group filtered-get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance group update-members": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance overtime get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance overtime search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance read_file": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance report columns": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance report query-data": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance report query-leave": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance schedule get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance schedule import": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance selfsetting get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance selfsetting save": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation balance": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation records": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation save-balance": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation types": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "attendance vacation update-type": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "calendar acl add": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "calendar acl delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "calendar book update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category add-conv": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category create-smart": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category remove-conv": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat category rename": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat clear-all-red-point": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat clear-messages": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat clear-red-point": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat data-auth cross-org": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group audit-join-validation": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group list-all": { - "status": "alias", - "target": "chat group list-my-groups", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "chat group list-join-validations": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group members": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "chat group members list-by-ids": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice create/edit/get/list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice edit": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group notice list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group share-invite": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group update-alias": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat group update-nick": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat hide": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat list-all-conversations": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat mark-read": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat mark-unread": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat message list-emotion-replies": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat message set-top-msg": { - "status": "alias", - "target": "chat message set-pin-msg", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "chat message unset-top-msg": { - "status": "alias", - "target": "chat message unset-pin-msg", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "chat mute-at-all": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat mute-red-envelope": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "chat text translate": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact label get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact label list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact label list-members": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "contact user current": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "contact user me": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "contact user self": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "contact user whoami": { - "status": "alias", - "target": "contact user get-self", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "dev connect": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "ding message list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "ding message recall-personal": { - "status": "alias", - "target": "ding message recall", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "ding message receiver-status": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "ding message send-by-message": { - "status": "alias", - "target": "ding message send", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "ding message send-personal": { - "status": "alias", - "target": "ding message send", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "doc aitable base create": { - "status": "alias", - "target": "aitable base create", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc block": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "doc copy + doc rename + doc block update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc drive download": { - "status": "alias", - "target": "drive download", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc drive list": { - "status": "alias", - "target": "drive list", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc drive mkdir": { - "status": "alias", - "target": "drive mkdir", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc drive search": { - "status": "alias", - "target": "drive search", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc export": { - "status": "alias", - "target": "doc export get", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc import": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc import get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc permission": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "doc read + doc create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "doc sheet create": { - "status": "alias", - "target": "sheet create", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc wiki member add": { - "status": "alias", - "target": "wiki member add", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "doc wiki node create": { - "status": "alias", - "target": "wiki node create", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "drive": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "drive publish get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive publish set": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive publish unset": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive recent": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive recycle list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive recycle restore": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "drive wiki space list": { - "status": "alias", - "target": "wiki space list", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "event consume user_im_message_receive_at -f ndjson": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 和输出参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_at": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_user": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_o2o_all -f ndjson": { - "status": "alias", - "target": "event consume", - "reason": "已审查的全量单聊事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_receive_group_all -f ndjson": { - "status": "alias", - "target": "event consume", - "reason": "已审查的全量群消息事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_read_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_read_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_recall_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_recall_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_reaction_o2o": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_message_reaction_group": { - "status": "alias", - "target": "event consume", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_updated": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群标题变更事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_member_added": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群成员加入事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_member_exited": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群成员退出事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event consume user_im_group_disbanded": { - "status": "alias", - "target": "event consume", - "reason": "已审查的群解散事件 Skill 引用,固定映射到当前公开 event consume leaf" - }, - "event schema user_im_message_receive_at": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_user": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_o2o_all": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_receive_group_all": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_read_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_read_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_recall_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_recall_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_reaction_o2o": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_message_reaction_group": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_updated": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_member_added": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_member_exited": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "event schema user_im_group_disbanded": { - "status": "alias", - "target": "event schema", - "reason": "已审查的带 event_key 参数的 Skill 引用,固定映射到当前公开 event schema leaf" - }, - "mail aisearch person": { - "status": "alias", - "target": "aisearch person", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "mail allow-list add": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail allow-list list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail allow-list list/add/remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail allow-list remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail auto-reply get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail auto-reply update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list add": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list list/add/remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail block-list remove": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail internetMessageId": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail mailbox profile": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail message batch-get": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail message batch-update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail message verify": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule adjust": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail rule update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail search": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail sent-message recall": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail sent-message recall-detail": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail tag create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail tag delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail tag update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread batch-trash": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread batch-update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread trash": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "mail thread update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "minutes": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "oa approval": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "oa approval append-task": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval ding-info": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval revert-activities": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval revert-task": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "oa approval search-forms": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "sheet batch-update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart create": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart delete": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart list": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet chart update": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet doc download": { - "status": "alias", - "target": "doc download", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "sheet filter-view": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "sheet formulaCondition": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet group-dimension": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet range": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "sheet range batch-clear": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "sheet range get": { - "status": "alias", - "target": "sheet range read", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "sheet ungroup-dimension": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "todo task list-sub": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "todo task remove-attachment": { - "status": "stale", - "reason": "旧版 Skill 或说明性引用,当前公开命令面无等价 leaf,禁止词法模糊映射" - }, - "wiki": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "wiki drive search": { - "status": "alias", - "target": "drive search", - "reason": "已审查的旧路径或跨产品文档前缀,固定映射到当前公开命令" - }, - "wiki member": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "wiki node": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - }, - "wiki space": { - "status": "group", - "reason": "Skill 中的命令分组引用,不是可执行 leaf,禁止模糊绑定到任一子命令" - } - } -} diff --git a/internal/cli/schema_hints/runtime-surface-completeness.json b/internal/cli/schema_hints/runtime-surface-completeness.json deleted file mode 100644 index e80c4705..00000000 --- a/internal/cli/schema_hints/runtime-surface-completeness.json +++ /dev/null @@ -1,1313 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "runtime-surface-completeness-v1", - "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" - }, - "coverage": { - "source_tools": 845, - "matched_tools": 71 - }, - "tools": { - "aitable.form_create": { - "agent_summary": "在指定数据表下创建一个新的表单视图(FormDesigner 类型)", - "use_when": [ - "1) 创建表单 → 取返回的 data.viewId 作为 VIEW_ID" - ], - "avoid_when": [ - "不需要在指定数据表下创建一个新的表单视图(FormDesigner 类型)时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form create --base-id BASE_ID --table-id TABLE_ID --name \"员工信息收集\" --format json" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.form_delete": { - "agent_summary": "删除指定数据表下的表单视图(不可逆)", - "use_when": [ - "删除指定数据表下的表单视图(不可逆)" - ], - "avoid_when": [ - "不需要删除指定数据表下的表单视图(不可逆)时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form delete --help" - ], - "effect": "destructive", - "risk": "high", - "confirmation": "user_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.form_field_hide": { - "agent_summary": "切换表单视图中某个字段的隐藏/显示状态", - "use_when": [ - "5) 隐藏不需要的题目" - ], - "avoid_when": [ - "不需要切换表单视图中某个字段的隐藏/显示状态时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form field hide --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --field-id FIELD_ID --hidden true --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "aitable.form_field_list": { - "agent_summary": "列出指定表单视图当前可见的字段及其配置", - "use_when": [ - "3) 查看表单字段配置" - ], - "avoid_when": [ - "不需要列出指定表单视图当前可见的字段及其配置时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form field list --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "aitable.form_field_update": { - "agent_summary": "更新表单视图中某个字段的必填状态或描述", - "use_when": [ - "4) 设置题目必填(FIELD_ID 来自步骤 2)" - ], - "avoid_when": [ - "不需要更新表单视图中某个字段的必填状态或描述时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form field update --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --field-id FIELD_ID --required true --format json" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.form_get": { - "agent_summary": "按 viewId 获取单个表单视图的元信息(name/title/createdAt/shareFormUuid)", - "use_when": [ - "2) 查看单个表单详情" - ], - "avoid_when": [ - "不需要按 viewId 获取单个表单视图的元信息(name/title/createdAt/shareFormUuid)时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form get --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "aitable.form_list": { - "agent_summary": "列出指定数据表下的所有表单视图", - "use_when": [ - "1) 列出数据表下的表单视图" - ], - "avoid_when": [ - "不需要列出指定数据表下的所有表单视图时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form list --base-id BASE_ID --table-id TABLE_ID --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "aitable.form_questions_create": { - "agent_summary": "在数据表中创建字段,即向表单添加题目", - "use_when": [ - "2) 添加题目 → 取返回的 data.results[].fieldId 作为 FIELD_ID" - ], - "avoid_when": [ - "不需要在数据表中创建字段,即向表单添加题目时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form questions create --base-id BASE_ID --table-id TABLE_ID --fields '[{\"fieldName\":\"姓名\",\"type\":\"text\"},{\"fieldName\":\"邮箱\",\"type\":\"text\"}]' --format json" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.form_questions_delete": { - "agent_summary": "删除指定字段(即表单题目)", - "use_when": [ - "删除指定字段(即表单题目)" - ], - "avoid_when": [ - "不需要删除指定字段(即表单题目)时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form questions delete --help" - ], - "effect": "destructive", - "risk": "high", - "confirmation": "user_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.form_share_get": { - "agent_summary": "读取指定视图当前的分享表单配置", - "use_when": [ - "4) 查看分享配置" - ], - "avoid_when": [ - "不需要读取指定视图当前的分享表单配置时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form share get --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "aitable.form_share_update": { - "agent_summary": "开启或关闭指定视图的分享表单", - "use_when": [ - "6) 开启分享(注意:开启后需 UI 刷新页面才会看到分享面板)" - ], - "avoid_when": [ - "不需要开启或关闭指定视图的分享表单时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form share update --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --enabled true --format json" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.form_update": { - "agent_summary": "更新表单整体配置(标题、描述)", - "use_when": [ - "3) 配置表单标题与描述" - ], - "avoid_when": [ - "不需要更新表单整体配置(标题、描述)时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable form update --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --title \"员工信息收集\" --description \"请填写您的基本信息\" --format json" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "aitable.record_batch_update": { - "agent_summary": "将同一份 cells JSON 批量应用到多条记录上", - "use_when": [ - "将同一份 cells JSON 批量应用到多条记录上" - ], - "avoid_when": [ - "不需要将同一份 cells JSON 批量应用到多条记录上时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws aitable record batch-update --help" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.adjustment_get": { - "agent_summary": "调用 MCP 工具 get_adjustment_rule_detail,根据补卡规则主键 ID 查询对应的补卡规则详情", - "use_when": [ - "查询补卡规则详情" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_adjustment_rule_detail,根据补卡规则主键 ID 查询对应的补卡规则详情时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance adjustment get --adjustment-id 12345", - "dws attendance adjustment get --adjustment-id 12345 --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.adjustment_search": { - "agent_summary": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中", - "use_when": [ - "查询补卡规则", - "补卡规则/补卡设置", - "补卡规则详情/某条补卡规则的具体信息" - ], - "avoid_when": [ - "不需要根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance adjustment search --page 1 --limit 20", - "dws attendance adjustment search --query \"标准\" --page 1 --limit 50" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.approve_list": { - "agent_summary": "查询指定用户的考勤业务审批单记录(补卡 / 加班 / 请假 / 出差外出)", - "use_when": [ - "审批单/请假记录/加班记录/出差记录/补卡记录", - "查/提交 请假/加班/补卡 审批单;考勤业务审批单" - ], - "avoid_when": [ - "不需要查询指定用户的考勤业务审批单记录(补卡 / 加班 / 请假 / 出差外出)时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance approve list --users userId1 --types overtime,leave --start 2026-04-01 --end 2026-04-30", - "dws attendance approve list --users userId1 --types trip --start 2026-04-01 --end 2026-04-30 # 同时返回出差与外出" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.approve_templates": { - "agent_summary": "当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接", - "use_when": [ - "当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接" - ], - "avoid_when": [ - "不需要当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance approve templates --type leave", - "dws attendance approve templates --type REPAIR_CHECK" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.boss_check": { - "agent_summary": "调用 MCP 工具 boss_check 修改员工打卡记录", - "use_when": [ - "假设返回 id: 948964045503 (OffDuty 下班打卡)", - "同时修改打卡时间" - ], - "avoid_when": [ - "不需要调用 MCP 工具 boss_check 修改员工打卡记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance boss-check --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.check_record": { - "agent_summary": "查询指定用户的打卡流水记录", - "use_when": [ - "打卡记录/出勤/考勤", - "指定用户打卡流水/打卡详情/打卡时间地点/打卡记录详情" - ], - "avoid_when": [ - "不需要查询指定用户的打卡流水记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance check record --users userId1 --start 2026-04-01 --end 2026-04-30" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.check_result": { - "agent_summary": "查询指定用户的打卡结果记录", - "use_when": [ - "指定用户打卡结果/考勤结果/迟到早退/缺卡异常" - ], - "avoid_when": [ - "不需要查询指定用户的打卡结果记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance check result --users userId1,userId2 --start 2026-04-01 --end 2026-04-30 --limit 50" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.checkin_records": { - "agent_summary": "查询指定员工在一段时间内的签到记录", - "use_when": [ - "查询签到记录", - "签到/签到记录" - ], - "avoid_when": [ - "不需要查询指定员工在一段时间内的签到记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance checkin records --operator-corp-id corp001 --operator-staff-id op001 --staff-ids user001,user002 --start \"2026-04-01 00:00:00\" --end \"2026-04-07 00:00:00\"", - "dws attendance checkin records --operator-corp-id corp001 --operator-staff-id op001 --staff-ids user001,user002 --start \"2026-04-01 00:00:00\" --end \"2026-04-07 00:00:00\" --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.class_create": { - "agent_summary": "调用 MCP 工具 create_class_setting,创建一个新的班次", - "use_when": [ - "调用 MCP 工具 create_class_setting,创建一个新的班次" - ], - "avoid_when": [ - "不需要调用 MCP 工具 create_class_setting,创建一个新的班次时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance class create --name \"早班\" --class-vo '{\"sections\":[{\"times\":[{\"checkType\":\"OnDuty\",\"checkTime\":\"08:00\",\"across\":0},{\"checkType\":\"OffDuty\",\"checkTime\":\"17:00\",\"across\":0}]}]}' --timeout 10" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.class_get": { - "agent_summary": "调用 MCP 工具 get_class_detail,根据班次 ID 查询该班次的详细信息", - "use_when": [ - "查询班次详情" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_class_detail,根据班次 ID 查询该班次的详细信息时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance class get --class-id 1170996821", - "dws attendance class get --class-id 1170996821 --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.class_search": { - "agent_summary": "查询当前用户有权管理的班次列表(班次定义),支持按名称搜索和类型过滤", - "use_when": [ - "查询可管理的班次列表", - "班次定义/班次列表/有哪些班次/我负责的班次", - "班次详情/某个班次的具体信息" - ], - "avoid_when": [ - "不需要查询当前用户有权管理的班次列表(班次定义),支持按名称搜索和类型过滤时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance class search", - "dws attendance class search --query \"早班\" --filter-type MINE_OWN" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.class_update": { - "agent_summary": "调用 MCP 工具 update_class_setting,更新一个已有的班次", - "use_when": [ - "更新班次", - "更新班次/修改班次/班次改名/修改上下班时间" - ], - "avoid_when": [ - "不需要调用 MCP 工具 update_class_setting,更新一个已有的班次时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance class update --class-id 1170996821 --name \"新早班\" --timeout 10", - "dws attendance class update --class-id 1170996821 --class-vo '{\"sections\":[{\"times\":[{\"checkType\":\"OnDuty\",\"checkTime\":\"08:30\",\"across\":0},{\"checkType\":\"OffDuty\",\"checkTime\":\"17:30\",\"across\":0}]}]}' --timeout 10" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.globalsetting_get": { - "agent_summary": "查询全局规则设置,仅管理员可以调用", - "use_when": [ - "查询全局规则设置,仅管理员可以调用" - ], - "avoid_when": [ - "不需要查询全局规则设置,仅管理员可以调用时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance globalsetting get --scope 企业 --setting-scene checkRemind --format json", - "dws attendance globalsetting get --scope 全公司 --setting-scene bossAttendStatNotify --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.globalsetting_save": { - "agent_summary": "更新保存全局规则设置,仅管理员可以调用", - "use_when": [ - "更新保存全局规则设置,仅管理员可以调用" - ], - "avoid_when": [ - "不需要更新保存全局规则设置,仅管理员可以调用时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance globalsetting save --help" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.group_create": { - "agent_summary": "调用 MCP 工具 create_group_setting,创建一个新的考勤组", - "use_when": [ - "创建考勤组", - "创建考勤组/新建考勤组/添加考勤组" - ], - "avoid_when": [ - "不需要调用 MCP 工具 create_group_setting,创建一个新的考勤组时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance group create --name \"研发考勤组\" --type FIXED --group-vo '{\"defaultClassId\":1170996821,\"workDayClassList\":[0,1170996821,0,0,0,0,0]}' --timeout 10", - "dws attendance group create --name \"自由工时分组\" --type NONE --timeout 10" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.group_filtered_get": { - "agent_summary": "调用 MCP 工具 get_group_filtered_detail,根据考勤组 ID 仅返回关心的字段子集, 强烈建议在仅需查询成员信息、打卡地址、蓝牙、W", - "use_when": [ - "1. 获取考勤组成员", - "按需查询考勤组成员/地址/蓝牙/Wifi", - "考勤组成员/打卡地址/打卡wifi/打卡蓝牙" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_group_filtered_detail,根据考勤组 ID 仅返回关心的字段子集, 强烈建议在仅需查询成员信息、打卡地址、蓝牙、W时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance group filtered-get --group-id --member --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.group_get": { - "agent_summary": "调用 MCP 工具 get_group_detail,根据考勤组 ID 查询该考勤组的全量信息", - "use_when": [ - "查询考勤组全量信息", - "考勤组详情/全量考勤组信息", - "获取考勤组详情(含绑定的班次列表)" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_group_detail,根据考勤组 ID 查询该考勤组的全量信息时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance group get --group-id --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.group_search": { - "agent_summary": "根据当前用户的权限和筛选条件获取考勤组简要信息", - "use_when": [ - "1. 确认考勤组并获取关联班次(先查后排)", - "1. 获取考勤组成员", - "查询考勤组列表", - "考勤组列表/有哪些考勤组" - ], - "avoid_when": [ - "不需要根据当前用户的权限和筛选条件获取考勤组简要信息时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance group search --query \"<考勤组名称>\" --type TURN --format json", - "dws attendance group search --query \"研发组\" --type TURN --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.group_update": { - "agent_summary": "调用 MCP 工具 update_group_setting,更新考勤组配置信息", - "use_when": [ - "修改考勤组/更新考勤组配置/考勤组改名/改变考勤组绑定的班次/修改打卡范围/设置考勤组负责人", - "更新考勤组配置" - ], - "avoid_when": [ - "不需要调用 MCP 工具 update_group_setting,更新考勤组配置信息时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance group update --group-id 123456 --name \"研发考勤组\" --timeout 10", - "dws attendance group update --group-id 123456 --owner userId1 --timeout 10" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.group_update_members": { - "agent_summary": "调用 MCP 工具 update_group_member,对指定考勤组的成员进行增删操作", - "use_when": [ - "更新考勤组成员", - "更新考勤组成员/添加考勤人员/删除考勤人员/添加考勤部门/删除考勤部门/加入考勤组/移出考勤组/设置无需考勤/取消无需考勤" - ], - "avoid_when": [ - "不需要调用 MCP 工具 update_group_member,对指定考勤组的成员进行增删操作时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance group update-members --group-id 123456 --add-users userId1,userId2", - "dws attendance group update-members --group-id 123456 --remove-users userId1" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.overtime_get": { - "agent_summary": "调用 MCP 工具 get_overtime_rule_detail,根据加班规则主键 ID 查询对应的加班规则详情", - "use_when": [ - "查询加班规则详情" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_overtime_rule_detail,根据加班规则主键 ID 查询对应的加班规则详情时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance overtime get --overtime-id 12345", - "dws attendance overtime get --overtime-id 12345 --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.overtime_search": { - "agent_summary": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中", - "use_when": [ - "加班规则/加班设置/加班计算", - "加班规则详情/某条加班规则的具体信息", - "查询加班规则" - ], - "avoid_when": [ - "不需要根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance overtime search --page 1 --limit 20", - "dws attendance overtime search --query \"节假日\" --page 1 --limit 50" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.report_columns": { - "agent_summary": "根据操作者的列权限,过滤并返回其有权查看的考勤字段列表", - "use_when": [ - "考勤字段/考勤列", - "获取考勤字段列表(管理员)" - ], - "avoid_when": [ - "不需要根据操作者的列权限,过滤并返回其有权查看的考勤字段列表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance report columns" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.report_query_data": { - "agent_summary": "根据字段查询考勤数据,含列权限过滤和用户查看权限校验", - "use_when": [ - "根据字段查询考勤数据(管理员)", - "考勤数据/查询考勤报表数据" - ], - "avoid_when": [ - "不需要根据字段查询考勤数据,含列权限过滤和用户查看权限校验时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance report query-data --users userId1,userId2 --columns 1001,1002 --start \"2026-03-01 00:00:00\" --end \"2026-03-31 23:59:59\"", - "dws attendance report query-data --users userId1,userId2 --columns 1001,1002 --start \"2026-03-01 00:00:00\" --end \"2026-03-31 23:59:59\" --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.report_query_leave": { - "agent_summary": "查询用户假期数据,含用户查看权限校验", - "use_when": [ - "假期数据/年假/病假/请假记录", - "查询用户假期数据(管理员)" - ], - "avoid_when": [ - "不需要查询用户假期数据,含用户查看权限校验时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance report query-leave --users userId1,userId2 --leave-names 年假,病假 --start \"2026-03-01 00:00:00\" --end \"2026-03-31 23:59:59\"", - "dws attendance report query-leave --users userId1,userId2 --leave-names 年假,病假 --start \"2026-03-01 00:00:00\" --end \"2026-03-31 23:59:59\" --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.schedule_get": { - "agent_summary": "获取指定用户在一段时间内的排班记录", - "use_when": [ - "步骤1:获取排班记录的 planId" - ], - "avoid_when": [ - "不需要获取指定用户在一段时间内的排班记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance schedule get --userIdList 03642229451220076 --workDateBegin 2026-05-13 --workDateEnd 2026-05-13 -f json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.schedule_import": { - "agent_summary": "为排班制考勤组导入排班记录", - "use_when": [ - "导入排班记录" - ], - "avoid_when": [ - "不需要为排班制考勤组导入排班记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance schedule import --help" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.selfsetting_get": { - "agent_summary": "查询个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项", - "use_when": [ - "查看指定用户的打卡提醒设置", - "查看指定用户的极速打卡设置", - "查询个人规则设置/查看打卡提醒/查看极速打卡/查看缺卡提醒/查看打卡结果通知/查看个人考勤统计通知/查看团队考勤统计通知" - ], - "avoid_when": [ - "不需要查询个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance selfsetting get --setting-scene checkRemind --user --format json", - "dws attendance selfsetting get --setting-scene fastCheck --user --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.selfsetting_save": { - "agent_summary": "更新保存个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项", - "use_when": [ - "开启打卡结果通知(Agent 调用时,必须先完成 ask_human 二次确认,确认后再追加 --yes 执行)", - "开启指定用户的打卡结果通知", - "更新个人规则设置/保存打卡提醒/修改极速打卡/关闭缺卡提醒/开启打卡结果通知/设置个人考勤统计通知/设置团队考勤统计通知", - "更新打卡提醒设置(Agent 调用时,必须先完成 ask_human 二次确认,确认后再追加 --yes 执行)", - "更新指定用户的极速打卡设置", - "更新极速打卡设置(Agent 调用时,必须先完成 ask_human 二次确认,确认后再追加 --yes 执行)" - ], - "avoid_when": [ - "不需要更新保存个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance selfsetting save --help" - ], - "effect": "write", - "risk": "high", - "confirmation": "user_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.vacation_balance": { - "agent_summary": "调用 MCP 工具 get_leave_balance_quota 查询指定员工的假期余额", - "use_when": [ - "1. 查询当前余额", - "1. 查询当前余额(假设返回5天)", - "增加假期余额/发放年假/给员工加年假", - "查看指定员工假期余额", - "查看指定员工某类假期余额", - "病假余额/年假余额/事假剩余假期", - "设置假期余额/调整假期额度/更新假期余额" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_leave_balance_quota 查询指定员工的假期余额时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance vacation balance --users userId1,userId2 --leave-code a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "dws attendance vacation balance --users userId1,userId2 --leave-code <假期类型code> --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.vacation_records": { - "agent_summary": "调用 MCP 工具 get_leave_balance_records 查询指定员工的假期余额变更记录", - "use_when": [ - "假期变更/假期记录/请假扣减", - "查看指定员工假期余额变更记录" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_leave_balance_records 查询指定员工的假期余额变更记录时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance vacation records --user USER_ID --leave-code a1b2c3d4-e5f6-7890-abcd-ef1234567890 --start 2026-04-01 --end 2026-04-22", - "dws attendance vacation records --user USER_ID --leave-code <假期类型code> --start 2026-04-01 --end 2026-04-22 --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.vacation_save_balance": { - "agent_summary": "调用 MCP 工具 update_leave_balance 设置指定员工的假期余额数量", - "use_when": [ - "3. 执行设置(SET操作,会替换当前余额)", - "3. 设置新总额度", - "设置员工年假余额为8天", - "设置带有效期的假期余额" - ], - "avoid_when": [ - "不需要调用 MCP 工具 update_leave_balance 设置指定员工的假期余额数量时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance vacation save-balance --target user001 --leave-code a1b2c3d4-e5f6-7890-abcd-ef1234567890 --num 8 --reason \"年度发放\"", - "dws attendance vacation save-balance --target user001 --leave-code a1b2c3d4-e5f6-7890-abcd-ef1234567890 --num 8 --reason \"年度发放\" --start 2024-01-01 --end 2024-12-31" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "attendance.vacation_types": { - "agent_summary": "调用 MCP 工具 get_leave_types 查询当前用户可用的假期规则列表", - "use_when": [ - "假期/我的假期/假期规则", - "查看假期规则列表" - ], - "avoid_when": [ - "不需要调用 MCP 工具 get_leave_types 查询当前用户可用的假期规则列表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance vacation types" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "attendance.vacation_update_type": { - "agent_summary": "调用 MCP 工具 save_leave_type 更新已有假期规则", - "use_when": [ - "更新假期单位", - "更新假期规则/修改假期类型/编辑假期规则", - "更新假期规则名称", - "更新适用范围" - ], - "avoid_when": [ - "不需要调用 MCP 工具 save_leave_type 更新已有假期规则时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws attendance vacation update-type --leave-code a1b2c3d4-e5f6-7890-abcd-ef1234567890 --name \"事假(修改版)\"", - "dws attendance vacation update-type --leave-code a1b2c3d4-e5f6-7890-abcd-ef1234567890 --unit hour --per-hours 8" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "doc.import_get": { - "agent_summary": "根据 taskId 查询文档导入任务的执行结果", - "use_when": [ - "根据 taskId 查询文档导入任务的执行结果" - ], - "avoid_when": [ - "不需要根据 taskId 查询文档导入任务的执行结果时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc import get --task-id ", - "dws doc import get --task-id --format json" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "doc.template_apply": { - "agent_summary": "使用指定模板创建新文档", - "use_when": [ - "使用指定模板创建新文档" - ], - "avoid_when": [ - "不需要使用指定模板创建新文档时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc template apply --help" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "doc.template_list": { - "agent_summary": "获取当前用户可用的文档模板列表,支持按来源筛选", - "use_when": [ - "获取当前用户可用的文档模板列表,支持按来源筛选" - ], - "avoid_when": [ - "不需要获取当前用户可用的文档模板列表,支持按来源筛选时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc template list --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "doc.template_search": { - "agent_summary": "根据关键词搜索文档模板", - "use_when": [ - "根据关键词搜索文档模板" - ], - "avoid_when": [ - "不需要根据关键词搜索文档模板时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc template search --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "doc.version_list": { - "agent_summary": "查看文档历史版本列表", - "use_when": [ - "查看文档历史版本列表" - ], - "avoid_when": [ - "不需要查看文档历史版本列表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc version list --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "doc.version_revert": { - "agent_summary": "回滚文档到指定版本", - "use_when": [ - "回滚文档到指定版本" - ], - "avoid_when": [ - "不需要回滚文档到指定版本时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc version revert --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "doc.version_save": { - "agent_summary": "手动保存文档版本快照", - "use_when": [ - "手动保存文档版本快照" - ], - "avoid_when": [ - "不需要手动保存文档版本快照时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws doc version save --help" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "drive.publish_get": { - "agent_summary": "查询文件当前是否处于互联网公开发布状态,以及公开发布的权限设置", - "use_when": [ - "查看公开状态/是否公开/发布状态" - ], - "avoid_when": [ - "不需要查询文件当前是否处于互联网公开发布状态,以及公开发布的权限设置时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws drive publish get --node ", - "dws drive publish get --node " - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "drive.publish_set": { - "agent_summary": "[危险] 将文件设置为互联网公开发布", - "use_when": [ - "公开文件/互联网公开/设置公开/让互联网所有人可访问" - ], - "avoid_when": [ - "不需要[危险] 将文件设置为互联网公开发布时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws drive publish set --node [--permission READER|DOWNLOADER|EDITOR]", - "dws drive publish set --node " - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "drive.publish_unset": { - "agent_summary": "[危险] 关闭文件的互联网公开发布", - "use_when": [ - "关闭公开/取消公开/取消互联网访问" - ], - "avoid_when": [ - "不需要[危险] 关闭文件的互联网公开发布时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws drive publish unset --node ", - "dws drive publish unset --node " - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "drive.recent": { - "agent_summary": "获取当前用户最近访问或编辑过的文档列表", - "use_when": [ - "最近访问/最近打开/最近编辑/最近文档" - ], - "avoid_when": [ - "不需要获取当前用户最近访问或编辑过的文档列表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws drive recent", - "dws drive recent --operate-type 1" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "drive.recycle_list": { - "agent_summary": "查看回收站文件列表", - "use_when": [ - "8. 查看回收站并还原文件", - "回收站/查看回收站/回收站列表/回收站里有什么" - ], - "avoid_when": [ - "不需要查看回收站文件列表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws drive recycle list", - "dws drive recycle list --space-id 12345 --limit 10" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "drive.recycle_restore": { - "agent_summary": "还原回收站中的文件", - "use_when": [ - "8. 查看回收站并还原文件", - "恢复文件/还原删除的文件/从回收站恢复/还原回收站文件" - ], - "avoid_when": [ - "不需要还原回收站中的文件时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws drive recycle restore --id ", - "dws drive recycle restore --id --format json" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "sheet.batch_update": { - "agent_summary": "将多个写操作打包为一次原子请求执行", - "use_when": [ - "批量操作/一次执行多个写操作/原子批量/先清除再写入;多个写操作打包" - ], - "avoid_when": [ - "不需要将多个写操作打包为一次原子请求执行时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet batch-update --node --operations '[", - "dws sheet batch-update --node --continue-on-error --operations '[...]'" - ], - "effect": "destructive", - "risk": "high", - "confirmation": "user_required", - "idempotency": "unknown", - "reviewed": false - }, - "sheet.chart_create": { - "agent_summary": "在钉钉电子表格的指定工作表中创建一个浮动图表", - "use_when": [ - "3. 创建柱形图", - "创建折线图", - "创建柱形图" - ], - "avoid_when": [ - "不需要在钉钉电子表格的指定工作表中创建一个浮动图表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet chart create --node NODE_ID --sheet-id SHEET_ID --properties '{", - "dws sheet chart create --node --sheet-id --properties '{" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "sheet.chart_delete": { - "agent_summary": "删除钉钉电子表格中指定的浮动图表", - "use_when": [ - "删除钉钉电子表格中指定的浮动图表" - ], - "avoid_when": [ - "不需要删除钉钉电子表格中指定的浮动图表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet chart delete --node NODE_ID --sheet-id SHEET_ID --chart-id CHART_ID" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "sheet.chart_list": { - "agent_summary": "获取钉钉电子表格指定工作表中的浮动图表", - "use_when": [ - "1. 获取现有配置", - "4. 验证创建结果", - "列出所有浮动图表", - "获取单个图表详情" - ], - "avoid_when": [ - "不需要获取钉钉电子表格指定工作表中的浮动图表时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet chart list --node NODE_ID --sheet-id SHEET_ID", - "dws sheet chart list --node NODE_ID --sheet-id SHEET_ID --chart-id CHART_ID" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "sheet.chart_update": { - "agent_summary": "更新钉钉电子表格中指定浮动图表的配置", - "use_when": [ - "3. 整体回写" - ], - "avoid_when": [ - "不需要更新钉钉电子表格中指定浮动图表的配置时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet chart update --node NODE_ID --sheet-id SHEET_ID --chart-id CHART_ID --properties '{", - "dws sheet chart update --node --sheet-id --chart-id --properties '<完整修改后的 JSON>'" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "sheet.group_dimension": { - "agent_summary": "对钉钉表格指定工作表中的连续整行或整列创建分组", - "use_when": [ - "创建行分组/创建列分组/折叠几行/折叠几列/取消行列分组;创建分组", - "创建行分组/创建列分组/折叠几行/折叠几列/展开行列分组/取消行列分组;创建分组", - "创建行分组/创建列分组/折叠几行/折叠几列/展开行列分组/取消行列分组;创建并折叠" - ], - "avoid_when": [ - "不需要对钉钉表格指定工作表中的连续整行或整列创建分组时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet group-dimension --node --sheet-id --range \"3:7\"", - "dws sheet group-dimension --node --sheet-id --range \"C:F\" --group-state fold" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "sheet.range_batch_clear": { - "agent_summary": "批量清除多个区域,一次原子请求", - "use_when": [ - "批量清除/一次清除多个区域/清空多个 sheet 的数据;批量清除多个区域" - ], - "avoid_when": [ - "不需要批量清除多个区域,一次原子请求时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet range batch-clear --node --ranges '[\"Sheet1!A1:B3\",\"Sheet2!C1:D5\"]'", - "dws sheet range batch-clear --node --ranges '[\"Sheet1!A1:Z1000\"]' --type all" - ], - "effect": "destructive", - "risk": "high", - "confirmation": "user_required", - "idempotency": "unknown", - "reviewed": false - }, - "sheet.template_apply": { - "agent_summary": "使用指定模板创建新表格文档", - "use_when": [ - "使用指定模板创建新表格文档" - ], - "avoid_when": [ - "不需要使用指定模板创建新表格文档时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet template apply --help" - ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", - "idempotency": "unknown", - "reviewed": false - }, - "sheet.template_list": { - "agent_summary": "获取当前用户可用的表格模板列表,支持按来源筛选", - "use_when": [ - "获取当前用户可用的表格模板列表,支持按来源筛选" - ], - "avoid_when": [ - "不需要获取当前用户可用的表格模板列表,支持按来源筛选时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet template list --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "sheet.template_search": { - "agent_summary": "根据关键词搜索表格模板", - "use_when": [ - "根据关键词搜索表格模板" - ], - "avoid_when": [ - "不需要根据关键词搜索表格模板时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet template search --help" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - }, - "sheet.ungroup_dimension": { - "agent_summary": "取消钉钉表格指定工作表中的连续整行或整列分组", - "use_when": [ - "创建行分组/创建列分组/折叠几行/折叠几列/取消行列分组;取消分组", - "创建行分组/创建列分组/折叠几行/折叠几列/展开行列分组/取消行列分组;取消分组" - ], - "avoid_when": [ - "不需要取消钉钉表格指定工作表中的连续整行或整列分组时不要使用;如仅查询状态请优先选择对应 list/get/search 命令" - ], - "examples": [ - "dws sheet ungroup-dimension --node --sheet-id --range \"3:7\"", - "dws sheet ungroup-dimension --node --sheet-id --range \"C:F\"" - ], - "effect": "read", - "risk": "low", - "confirmation": "not_required", - "idempotency": "idempotent", - "reviewed": false - } - } -} diff --git a/internal/cli/schema_hints/selection-review.json b/internal/cli/schema_hints/selection-review.json deleted file mode 100644 index 12e24bd7..00000000 --- a/internal/cli/schema_hints/selection-review.json +++ /dev/null @@ -1,7761 +0,0 @@ -{ - "version": 1, - "source": { - "kind": "explicit", - "name": "agent-selection-contract-v1", - "reviewed": true, - "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" - }, - "coverage": { - "source_tools": 513 - }, - "tools": { - "aisearch.enterprise_person_search": { - "use_when": [ - "13800138000是谁/查手机号;按手机号搜人", - "222020这个工号是谁/查工号;按工号搜人", - "五道的上级是谁/谁负责XX/XX的下属有谁;AI语义搜人", - "找一下张三/搜同事/找人;AI搜人(首选)", - "搜人/找人/谁负责/上级是谁/哪个部门的人" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“企业内找人搜索工具,支持按姓名、部门、职位、技能、工作职责等多维度搜索企业内人员。”" - ], - "examples": [ - "dws aisearch person --keyword \"张三\" --dimension name --format json", - "dws aisearch person --keyword \"产品部\" --dimension department --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aisearch.search_enterprise": { - "use_when": [ - "搜一下智能化方案/最近 OKR 相关邮件/最近发版相关消息;搜企业知识内容", - "搜资料/找方案/查文档/搜企业知识/项目相关内容/工作总结/周报总结", - "最近/本周/今天 + XX相关消息/文档/邮件有哪些" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“企业内部知识搜索工具。”" - ], - "examples": [ - "dws aisearch enterprise --queries \"智能化方案\" --types document --format json", - "dws aisearch enterprise --queries \"搜索问题\" --types im --time-range \"最近\" --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aisearch.search_enterprise_behavior": { - "use_when": [ - "我发给某人的消息/邮件/文档/今天我干了什么;搜行为记录", - "我发过/谁发给我/创建过/分享过/收到过/今天我干了什么" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“业内部行为记录搜索工具。”" - ], - "examples": [ - "dws aisearch behavior --queries \"智能化方案\" --types document --format json", - "dws aisearch behavior --types mail --behavior-type send --direction \"我->汐峰\" --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_disable": { - "use_when": [ - "开启或关闭指定 Base 的高级权限总开关。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“开启或关闭指定 Base 的高级权限总开关。”所述变更时不要使用" - ], - "examples": [ - "dws aitable advperm disable --base-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_enable": { - "use_when": [ - "1. 确保高级权限已开" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“开启或关闭指定 Base 的高级权限总开关。”所述变更时不要使用" - ], - "examples": [ - "dws aitable advperm enable --base-id BASE_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_role_create": { - "use_when": [ - "3. 创建角色 + 指定 sheet 子角色 authLevel=read", - "仅指定 name,子角色由服务端按默认(none)填充", - "创建时即指定 sub-roles(推荐——避免再走一次 role-update)" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“在指定 Base 下创建自定义角色;”所述变更时不要使用" - ], - "examples": [ - "dws aitable advperm role-create --base-id BASE_ID --name \"市场可读\" --format json", - "dws aitable advperm role-create --base-id BASE_ID --name \"市场可读\" --sub-roles '[{\"targetId\":\"\",\"targetType\":\"sheet\",\"authLevel\":\"read\"}]' --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_role_delete": { - "use_when": [ - "删除指定 Base 下的自定义角色;" - ], - "avoid_when": [ - "用户未明确要求“删除指定 Base 下的自定义角色;”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable advperm role-delete --base-id --role-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_role_get": { - "use_when": [ - "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。”" - ], - "examples": [ - "dws aitable advperm role-get --base-id BASE_ID --role-id ROLE_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_role_list": { - "use_when": [ - "列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。”" - ], - "examples": [ - "dws aitable advperm role-list --base-id BASE_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.advperm_role_update": { - "use_when": [ - "只传 sub-roles,name 等其他字段保持不变(PATCH 语义)", - "只改 sheet 子角色 authLevel,name 不传保持不变", - "只改名" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“增量更新自定义角色配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable advperm role-update --base-id BASE_ID --role-id ROLE_ID --name \"新名字\"", - "dws aitable advperm role-update --base-id BASE_ID --role-id ROLE_ID --sub-roles '[{\"targetId\":\"\",\"targetType\":\"sheet\",\"authLevel\":\"edit-own\"}]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.attachment_upload": { - "use_when": [ - "1. 获取上传凭证" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“申请 attachment 字段 OSS 直传地址(不直接上传)”所述变更时不要使用" - ], - "examples": [ - "dws aitable attachment upload --base-id --file-name report.xlsx --size 204800", - "dws aitable attachment upload --base-id --file-name photo.png --size 1024 --mime-type image/png" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_copy": { - "use_when": [ - "复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入”所述变更时不要使用" - ], - "examples": [ - "dws aitable base copy --base-id --target-folder-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_create": { - "use_when": [ - "表格/多维表/AI表格;创建" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建 AI 表格 Base”所述变更时不要使用" - ], - "examples": [ - "dws aitable base create --name \"项目跟踪\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_delete": { - "use_when": [ - "表格/多维表/AI表格;删除" - ], - "avoid_when": [ - "用户未明确要求“删除 Base(高风险、不可逆)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable base delete --base-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_get": { - "use_when": [ - "2. 获取 Base 信息 — 提取 tableId", - "表格/多维表/AI表格;详情" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取 Base 资源目录(tables、dashboards summary)”" - ], - "examples": [ - "dws aitable base get --base-id --format json", - "dws aitable base get --base-id BASE_ID # 查询 baseId: dws aitable base list" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_get_primary_doc_id": { - "use_when": [ - "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作”" - ], - "examples": [ - "dws aitable base get-primary-doc-id --base-id --record-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_list": { - "use_when": [ - "获取 AI 表格列表(最近访问)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取 AI 表格列表(最近访问)”" - ], - "examples": [ - "dws aitable base list", - "dws aitable base list --limit 5 --cursor NEXT_CURSOR" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_search": { - "use_when": [ - "1. 搜索/列出 Base — 提取 baseId", - "表格/多维表/AI表格;查看/查找/列表" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“按名称关键词搜索 AI 表格 Base。”" - ], - "examples": [ - "dws aitable base search --query \"项目\" --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.base_update": { - "use_when": [ - "表格/多维表/AI表格;修改" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新 Base 名称 / 备注”所述变更时不要使用" - ], - "examples": [ - "dws aitable base update --base-id BASE_ID --name \"新名称\" # 查询 baseId: dws aitable base list" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_create": { - "use_when": [ - "在 dashboard 下创建 chart(需 --config 与 --layout)" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“在 dashboard 下创建 chart(需 --config 与 --layout)”所述变更时不要使用" - ], - "examples": [ - "dws aitable chart create --base-id BASE_ID --dashboard-id DASHBOARD_ID --config '{\"chartName\":\"销售柱图\",\"chartType\":\"bar\",...}' --layout '{\"x\":0,\"y\":0,\"w\":6,\"h\":4}'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_delete": { - "use_when": [ - "删除 chart(同步删除其 dashboard 布局项;不可逆)" - ], - "avoid_when": [ - "用户未明确要求“删除 chart(同步删除其 dashboard 布局项;不可逆)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable chart delete --base-id --chart-id --dashboard-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_get": { - "use_when": [ - "2) 先拿 dashboard,再拿 chart 详情" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取 chart 详细信息(widget.config + 布局)”" - ], - "examples": [ - "dws aitable chart get --base-id --dashboard-id --chart-id --format json", - "dws aitable chart get --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_share_get": { - "use_when": [ - "获取 chart 分享配置" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取 chart 分享配置”" - ], - "examples": [ - "dws aitable chart share get --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_share_update": { - "use_when": [ - "更新 chart 分享开关与类型" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新 chart 分享开关与类型”所述变更时不要使用" - ], - "examples": [ - "dws aitable chart share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --enabled true --share-type ORG", - "dws aitable chart share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --enabled false" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_update": { - "use_when": [ - "更新 chart 配置 / 布局" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新 chart 配置 / 布局”所述变更时不要使用" - ], - "examples": [ - "dws aitable chart update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --config '{\"chartName\":\"新柱图名\",...}'", - "dws aitable chart update --base-id BASE_ID --dashboard-id DASHBOARD_ID --chart-id CHART_ID --layout '{\"x\":0,\"y\":4,\"w\":12,\"h\":4}'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.chart_widgets_example": { - "use_when": [ - "1) 先看配置模板(JSONC)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“返回所有图表类型的 widget config 示例(JSONC)”" - ], - "examples": [ - "dws aitable chart widgets-example --format json", - "dws aitable chart widgets-example" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.create": { - "use_when": [ - "创建 AI 表格(dws aitable base create 的别名)" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建 AI 表格(dws aitable base create 的别名)”所述变更时不要使用" - ], - "examples": [ - "dws aitable create --name " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_arrange": { - "use_when": [ - "自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。”所述变更时不要使用" - ], - "examples": [ - "dws aitable dashboard arrange --base-id --dashboard-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_config_example": { - "use_when": [ - "1) 先看配置模板(JSONC)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“返回 dashboard config 结构示例(JSONC)”" - ], - "examples": [ - "dws aitable dashboard config-example --format json", - "dws aitable dashboard config-example" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_create": { - "use_when": [ - "在指定 Base 下创建 dashboard。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“在指定 Base 下创建 dashboard。”所述变更时不要使用" - ], - "examples": [ - "dws aitable dashboard create --base-id --name " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_delete": { - "use_when": [ - "删除 dashboard(级联删除其下 chart;不可逆)" - ], - "avoid_when": [ - "用户未明确要求“删除 dashboard(级联删除其下 chart;不可逆)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable dashboard delete --base-id --dashboard-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_get": { - "use_when": [ - "2) 先拿 dashboard,再拿 chart 详情" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取 dashboard 详情(含 charts summary)”" - ], - "examples": [ - "dws aitable dashboard get --base-id --dashboard-id --format json", - "dws aitable dashboard get --base-id BASE_ID --dashboard-id DASHBOARD_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_share_get": { - "use_when": [ - "获取 dashboard 分享配置" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取 dashboard 分享配置”" - ], - "examples": [ - "dws aitable dashboard share get --base-id BASE_ID --dashboard-id DASHBOARD_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_share_update": { - "use_when": [ - "更新 dashboard 分享开关与类型" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新 dashboard 分享开关与类型”所述变更时不要使用" - ], - "examples": [ - "dws aitable dashboard share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --enabled true --share-type PUBLIC", - "dws aitable dashboard share update --base-id BASE_ID --dashboard-id DASHBOARD_ID --enabled false" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.dashboard_update": { - "use_when": [ - "更新指定 dashboard 的配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定 dashboard 的配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable dashboard update --base-id --dashboard-id --name " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.export_data": { - "use_when": [ - "第一步:创建任务(按 scope 传必要参数)", - "第一步:创建任务时使用 --export-format 指定导出格式,并保持 --format json 作为结构化输出", - "第二步:拿 taskId 继续轮询,直到返回 downloadUrl", - "续等导出:拿到 downloadUrl 后再 curl 下载(见下方警告)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“导出数据(不传 --task-id 创建新任务并等待,传入 --task-id 继续等待)”" - ], - "examples": [ - "dws aitable export data --base-id --scope table --table-id --export-format excel --timeout-ms 1000 --format json", - "dws aitable export data --base-id --task-id --timeout-ms 3000 --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.field_create": { - "use_when": [ - "字段/列/column;添加", - "或者使用批量创建模式:" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“在已有表格中批量新增字段。”所述变更时不要使用" - ], - "examples": [ - "dws aitable field create --base-id --table-id --name \"状态\" --type \"singleSelect\" --config '{\"options\":[{\"name\":\"待办\"},{\"name\":\"进行中\"},{\"name\":\"已完成\"}]}'", - "dws aitable field create --base-id --table-id --fields '[{\"fieldName\":\"状态\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"待办\"}]}}]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.field_delete": { - "use_when": [ - "字段/列/column;删除" - ], - "avoid_when": [ - "用户未明确要求“删除字段(不可逆,禁止删除主字段与最后一个字段)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable field delete --base-id --field-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.field_get": { - "use_when": [ - "字段/列/column;查看" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“批量获取字段详细信息(含完整配置)”" - ], - "examples": [ - "dws aitable field get --base-id --table-id ", - "dws aitable field get --base-id --table-id --field-ids fld1,fld2" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.field_list": { - "use_when": [ - "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。”" - ], - "examples": [ - "dws aitable field list --base-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.field_search_options": { - "use_when": [ - "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。”" - ], - "examples": [ - "dws aitable field search-options --base-id --field-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.field_update": { - "use_when": [ - "字段/列/column;修改" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新字段名称 / 配置 / AI 配置(至少传一项)”所述变更时不要使用" - ], - "examples": [ - "dws aitable field update --base-id --table-id --field-id --name \"新字段名\"", - "dws aitable field update --base-id --table-id --field-id --config '{\"options\":[{\"name\":\"A\"},{\"name\":\"B\"}]}'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.import_data": { - "use_when": [ - "第 3 步(替代):追加到已有表", - "第 3 步:触发导入(新建表模式)", - "续等导入" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“触发导入并等待结果;每个 Sheet 新建为独立表”所述变更时不要使用" - ], - "examples": [ - "dws aitable import data --import-id --format json", - "dws aitable import data --import-id --table-id --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.import_upload": { - "use_when": [ - "第 1 步:申请上传凭证" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“申请导入文件 OSS 直传地址,返回 uploadUrl 与 importId”所述变更时不要使用" - ], - "examples": [ - "dws aitable import upload --base-id --file-name data.xlsx --file-size <字节数> --format json", - "dws aitable import upload --base-id BASE_ID --file-name data.xlsx --file-size 204800" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.info": { - "use_when": [ - "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。”" - ], - "examples": [ - "dws aitable info --base-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.list": { - "use_when": [ - "列出当前用户可访问的 AI 表格 Base。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“列出当前用户可访问的 AI 表格 Base。”" - ], - "examples": [ - "dws aitable list" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.query_records": { - "use_when": [ - "4. 查询记录", - "从上次断点继续", - "关键词搜索", - "按 ID 查询", - "无限制(拉完为止)", - "游标分页", - "示例:基础条件查询模板(可改内部 operator 为 contain 等)", - "记录/行/数据/row;查看/搜索", - "默认(最多 50 页 = 5000 条)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询记录(支持按 ID 取或 filters/sort/分页遍历)”" - ], - "examples": [ - "dws aitable record query --base-id --table-id --format json", - "dws aitable record query --base-id --table-id --filters '{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fld_state\",\"进行中\"]}]}' --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_create": { - "use_when": [ - "5. 新增记录 (cells 用 fieldId 作 key)", - "再用 fieldId 写入记录", - "单条", - "多条", - "步骤 2: 在 record create/update 中使用 fileToken 写入", - "步骤 2: 在 record create/update 中使用 fileToken 写入附件字段", - "记录/行/数据/row;添加/写入" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“批量新增记录(单次最多 100 条)”所述变更时不要使用" - ], - "examples": [ - "dws aitable record create --base-id --table-id --records '[{\"cells\":{\"fldABC\":\"完成设计\",\"fldDEF\":\"进行中\"}}]' --format json", - "dws aitable record create --base-id --table-id --records '[" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_delete": { - "use_when": [ - "记录/行/数据/row;删除" - ], - "avoid_when": [ - "用户未明确要求“批量删除记录(不可逆,单次最多 100 条)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable record delete --base-id --record-ids --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_get": { - "use_when": [ - "记录/行/数据/row;已知 recordId 反查字段值" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定表格中的记录,支持两种模式: 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。”" - ], - "examples": [ - "dws aitable record get --base-id --record-ids --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_history_list": { - "use_when": [ - "第 1 页(最新 20 条)", - "第 2 页" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定行记录的变更历史列表。”" - ], - "examples": [ - "dws aitable record history-list --base-id BASE_ID --table-id TABLE_ID --record-id REC_ID [--offset N] [--limit M]", - "dws aitable record history-list --base-id BASE --table-id TBL --record-id REC --format json | jq '.data.histories[] | {version, action, operateTime}'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_primary_doc_create": { - "use_when": [ - "2. 为某条记录创建主键文档" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“为指定记录创建主键文档(幂等:若该记录已有主键文档则直接返回已有文档的 nodeId)。”所述变更时不要使用" - ], - "examples": [ - "dws aitable record primary-doc-create --base-id BASE_ID --table-id TABLE_ID --field-id FIELD_ID --record-id RECORD_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_primary_doc_get": { - "use_when": [ - "查询指定记录的主键文档信息。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定记录的主键文档信息。”" - ], - "examples": [ - "dws aitable record primary-doc-get --base-id BASE_ID --table-id TABLE_ID --record-id RECORD_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_query_empty": { - "use_when": [ - "查询指定表格中\"完全没填用户字段\"的空行。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定表格中\"完全没填用户字段\"的空行。”" - ], - "examples": [ - "dws aitable record query-empty --base-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_share_url": { - "use_when": [ - "一次拿一条记录的链接", - "带视图上下文(链接打开时落在指定视图)", - "批量拿,配合 jq 过滤出 url" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定行记录的分享链接,可用于将记录分享给他人。”" - ], - "examples": [ - "dws aitable record share-url --base-id BASE_ID --table-id TABLE_ID --record-ids rec1,rec2,rec3 [--view-id VIEW_ID]", - "dws aitable record share-url --base-id BASE --table-id TBL --record-ids rec1" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_update": { - "use_when": [ - "3. 写入记录", - "记录/行/数据/row;修改/更新" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“批量更新记录(单次最多 100 条)”所述变更时不要使用" - ], - "examples": [ - "dws aitable record update --base-id --table-id --records '[{\"recordId\":\"rec001\",\"cells\":{\"fldDEF\":\"已完成\"}}]' --format json", - "dws aitable record update --base-id --table-id --records '[{\"recordId\":\"recXXX\",\"cells\":{\"fldAttachId\":[{\"fileToken\":\"ft_xxx\"}]}}]' --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.record_upsert": { - "use_when": [ - "1) 全部新建:所有项都不带 recordId", - "2) 全部更新:所有项都带 recordId", - "3) 混合:第 1 条更新(带 recordId),第 2 条创建(不带)", - "4) 长 JSON 用文件" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“批量创建或更新记录(Upsert 语义)。”所述变更时不要使用" - ], - "examples": [ - "dws aitable record upsert --base-id BASE_ID --table-id TABLE_ID --records '[{\"recordId\":\"<可选>\",\"cells\":{...}}, ...]'", - "dws aitable record upsert --base-id BASE --table-id TBL --records '[" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.search": { - "use_when": [ - "按名称关键词搜索 AI 表格 Base。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“按名称关键词搜索 AI 表格 Base。”" - ], - "examples": [ - "dws aitable search --query " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_create": { - "use_when": [ - "在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。”所述变更时不要使用" - ], - "examples": [ - "dws aitable section create --base-id --name 我的文件夹", - "dws aitable section create --base-id --name 子文件夹 --parent-section-id --index 0" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_delete": { - "use_when": [ - "删除指定分区。" - ], - "avoid_when": [ - "用户未明确要求“删除指定分区。”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable section delete --base-id --section-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_list_empty": { - "use_when": [ - "列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。”" - ], - "examples": [ - "dws aitable section list-empty --base-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_list_nodes": { - "use_when": [ - "列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。”" - ], - "examples": [ - "dws aitable section list-nodes --base-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_move_node": { - "use_when": [ - "把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable section move-node --base-id --node-id --new-parent-section-id ", - "dws aitable section move-node --base-id --node-id --new-parent-section-id \"\" --target-index 0" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_rename": { - "use_when": [ - "重命名指定分区。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“重命名指定分区。”所述变更时不要使用" - ], - "examples": [ - "dws aitable section rename --base-id --section-id --new-name 新名称" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.section_reorder": { - "use_when": [ - "在当前父分区下调整分区的展示顺序。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“在当前父分区下调整分区的展示顺序。”所述变更时不要使用" - ], - "examples": [ - "dws aitable section reorder --base-id --section-id --target-index 0" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.table_create": { - "use_when": [ - "数据表/子表/table;创建" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建数据表并附带初始字段(最多 15 个)”所述变更时不要使用" - ], - "examples": [ - "dws aitable table create --base-id BASE_ID --name \"任务表\" --fields '[{\"fieldName\":\"任务名称\",\"type\":\"text\"},{\"fieldName\":\"优先级\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"高\"},{\"name\":\"中\"},{\"name\":\"低\"}]}}]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.table_delete": { - "use_when": [ - "数据表/子表/table;删除" - ], - "avoid_when": [ - "用户未明确要求“删除数据表(不可逆,高风险)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable table delete --base-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.table_get": { - "use_when": [ - "1. 查询表结构,拿到 primaryDoc 字段的 fieldId", - "2. 拿目标 sheet 的 tableId", - "3. 获取表结构 — 提取 fieldId", - "先获取 fieldId", - "数据表/子表/table;查看" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“批量获取数据表目录与字段、视图 summary”" - ], - "examples": [ - "dws aitable table get --base-id --table-id --format json", - "dws aitable table get --base-id BASE_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.table_list": { - "use_when": [ - "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。”" - ], - "examples": [ - "dws aitable table list --base-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.table_update": { - "use_when": [ - "数据表/子表/table;重命名", - "用户说\"恢复成默认(记录)\" → 传 ji_lu", - "用户说\"把这张表的行叫'任务'吧\" → 传 task", - "用户说\"换成项目\" → 传 project" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“重命名数据表”所述变更时不要使用" - ], - "examples": [ - "dws aitable table update --base-id BASE --table-id TBL --record-name-key task", - "dws aitable table update --base-id BASE --table-id TBL --record-name-key project" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.template_search": { - "use_when": [ - "模板" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“按关键词搜索 AI 表格模板(不传返回热门模板)”" - ], - "examples": [ - "dws aitable template search --query \"项目管理\"", - "dws aitable template search" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_create": { - "use_when": [ - "第 1 步:创建 Gantt 视图" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建视图(Grid/FormDesigner/Gantt/Calendar/Kanban/Gallery)”所述变更时不要使用" - ], - "examples": [ - "dws aitable view create --base-id BASE_ID --table-id TABLE_ID --view-type Gantt --name \"项目甘特图\" -f json", - "dws aitable view create --base-id BASE_ID --table-id TABLE_ID --view-type Grid" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_delete": { - "use_when": [ - "删除视图(不可逆;禁止删除最后一个视图或锁定视图)" - ], - "avoid_when": [ - "用户未明确要求“删除视图(不可逆;禁止删除最后一个视图或锁定视图)”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws aitable view delete --base-id --table-id --view-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_duplicate": { - "use_when": [ - "显式命名", - "系统自动命名(一般是 \"原视图名 (副本)\")" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“复制指定视图(View),生成一个与源视图结构一致的新视图(包含列顺序、筛选、排序、分组、自定义配置等)。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view duplicate --view-id VIEW_ID --new-name \"副本视图\"", - "dws aitable view duplicate --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_get_aggregate": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get aggregate --view-id VIEW_ID --format json # Grid" - ] - }, - "aitable.view_get_card": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get card --view-id VIEW_ID --format json # Kanban / Gallery", - "dws aitable view get card --view-id KANBAN_ID --format json" - ] - }, - "aitable.view_get_field_widths": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get field-widths --view-id VIEW_ID --format json # Grid" - ] - }, - "aitable.view_get_fill_color_rule": { - "use_when": [ - "3) 查询当前规则", - "看实际生效的 conditionalFormats" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get fill-color-rule --view-id GRID_ID --format json", - "dws aitable view get fill-color-rule --view-id VIEW_ID --format json" - ] - }, - "aitable.view_get_filter": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get filter --view-id VIEW_ID --format json # 所有" - ] - }, - "aitable.view_get_frozen_cols": { - "use_when": [ - "查询当前冻结列数" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定视图(View)当前的冻结列数(左侧固定列)。”" - ], - "examples": [ - "dws aitable view get frozen-cols --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_get_group": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get group --view-id VIEW_ID --format json" - ] - }, - "aitable.view_get_lock": { - "use_when": [ - "查询当前是否锁定" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定视图(View)当前的锁定状态。”" - ], - "examples": [ - "dws aitable view get lock --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_get_row_height": { - "use_when": [ - "查询当前行高" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询指定视图(View)当前的单元格行高,单位为像素。”" - ], - "examples": [ - "dws aitable view get row-height --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_get_sort": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get sort --view-id VIEW_ID --format json" - ] - }, - "aitable.view_get_timebar": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get timebar --view-id VIEW_ID --format json # Gantt" - ] - }, - "aitable.view_get_visible_fields": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view get visible-fields --view-id VIEW_ID --format json" - ] - }, - "aitable.view_list": { - "use_when": [ - "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。”" - ], - "examples": [ - "dws aitable view list --base-id --table-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_lock": { - "use_when": [ - "4) 锁定视图,防止他人改坏", - "解锁", - "锁定(默认)" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“锁定或解锁指定视图(View)。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view lock --view-id VIEW_ID", - "dws aitable view lock --view-id VIEW_ID --off" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_aggregate": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update aggregate --view-id GRID_ID --field-id fldX --action SUM" - ], - "interface_mode": "composite", - "availability": "available", - "interface_ref": null, - "interface_reason": "The CLI performs an aitable/get_views preflight, locally transforms the requested configuration, and then calls aitable/update_view; the two-call workflow has no single direct MCP interface." - }, - "aitable.view_update_card": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update card --view-id KANBAN_ID --cover-field-id fldAttachment --cover-resize-mode contain", - "dws aitable view update card --view-id KANBAN_ID --no-cover" - ], - "interface_mode": "composite", - "availability": "available", - "interface_ref": null, - "interface_reason": "The CLI performs an aitable/get_views preflight, locally transforms the requested configuration, and then calls aitable/update_view; the two-call workflow has no single direct MCP interface." - }, - "aitable.view_update_field_widths": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update field-widths --view-id GRID_ID --field-id fldX --width 200", - "dws aitable view update field-widths --view-id GRID_ID --json '{\"fldA\":120,\"fldB\":200}'" - ], - "interface_mode": "composite", - "availability": "available", - "interface_ref": null, - "interface_reason": "The CLI performs an aitable/get_views preflight, locally transforms the requested configuration, and then calls aitable/update_view; the two-call workflow has no single direct MCP interface." - }, - "aitable.view_update_fill_color_rule": { - "use_when": [ - "1) 给金额字段 > 100 的单元格上 firstLine5 色", - "2) 清空所有规则", - "3) 金额 > 100 的单元格上色" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“设置指定表格视图(Grid View)的条件填色规则(全量覆盖)。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update fill-color-rule --view-id GRID_ID --json '[", - "dws aitable view update fill-color-rule --view-id GRID_ID --json '[]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_filter": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update filter --view-id VIEW_ID --json '[{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fldX\",\"value\"]}]}]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_frozen_cols": { - "use_when": [ - "1) 关键字段冻结,避免横向滚动看不到", - "冻结从首列起 1 列", - "取消冻结" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“设置指定视图(View)的冻结列数(左侧固定列),默认 1。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update frozen-cols --view-id VIEW_ID --count 1", - "dws aitable view update frozen-cols --view-id VIEW_ID --count 0" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_group": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update group --view-id VIEW_ID --json '[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_name": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update name --view-id VIEW_ID --name \"新视图名\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_row_height": { - "use_when": [ - "2) 加大行高让数据更易读", - "设置行高 — 推荐档位 32 / 56 / 88 / 128" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“设置指定视图(View)的单元格高度(行高),单位为像素,默认 32。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update row-height --view-id VIEW_ID --cell-height 56", - "dws aitable view update row-height --base-id $BASE --table-id $TABLE --view-id $VIEW --cell-height 56" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_sort": { - "use_when": [ - "更新指定视图(View)的名称、描述或配置。" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update sort --view-id VIEW_ID --json '[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.view_update_timebar": { - "use_when": [ - "第 2 步(必须):绑定日期字段,否则视图为空" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update timebar --view-id GANTT_ID --start-field fldStart --end-field fldEnd --timeline-scale month", - "dws aitable view update timebar --view-id GANTT_ID --official-holiday=true" - ], - "interface_mode": "composite", - "availability": "available", - "interface_ref": null, - "interface_reason": "The CLI performs an aitable/get_views preflight, locally transforms the requested configuration, and then calls aitable/update_view; the two-call workflow has no single direct MCP interface." - }, - "aitable.view_update_visible_fields": { - "use_when": [ - "传回全量列表解除隐藏", - "只保留首列和 fldA,其余字段被隐藏" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“更新指定视图(View)的名称、描述或配置。”所述变更时不要使用" - ], - "examples": [ - "dws aitable view update visible-fields --view-id VIEW_ID --field-ids fldPrimary,fldA", - "dws aitable view update visible-fields --view-id VIEW_ID --json '[\"fldPrimary\",\"fldA\",\"fldB\"]'" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.workflow_disable": { - "use_when": [ - "2. 禁用" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“禁用指定 Base 中的自动化工作流。”所述变更时不要使用" - ], - "examples": [ - "dws aitable workflow disable --base-id --workflow-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.workflow_enable": { - "use_when": [ - "3. 调试做完后重启" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“启用指定 Base 中的自动化工作流。”所述变更时不要使用" - ], - "examples": [ - "dws aitable workflow enable --base-id BASE_ID --workflow-id WORKFLOW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.workflow_get": { - "use_when": [ - "1. 留底当前状态" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取指定 Base 中某个自动化工作流的详细信息,直接返回下游 getFlowDetail 的详情结构。”" - ], - "examples": [ - "dws aitable workflow get --base-id BASE_ID --workflow-id WORKFLOW_ID --format json", - "dws aitable workflow get --base-id BASE_ID --workflow-id WORKFLOW_ID --format json > /tmp/wf-backup.json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "aitable.workflow_list": { - "use_when": [ - "4. 确认 status=RUNNING" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“列出指定 Base 中的自动化工作流,直接返回下游 searchFlows 的响应结构。”" - ], - "examples": [ - "dws aitable workflow list --base-id BASE_ID --format json", - "dws aitable workflow list --base-id BASE_ID --limit 50 --offset 100" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "attendance.batch_get_employee_shifts": { - "use_when": [ - "批量查询员工班次信息(间隔 ≤ 7 天,最多 50 人)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“批量查询员工班次信息(间隔 ≤ 7 天,最多 50 人)”" - ], - "examples": [ - "dws attendance shift list --users userId1,userId2 --start 2026-03-03 --end 2026-03-07 # 查询 userId: dws contact user search --keyword \"姓名\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "attendance.get_attendance_summary": { - "use_when": [ - "查看考勤统计摘要(--stats-type 必填:week 周统计 / month 月统计)", - "考勤汇总/统计" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询某个人的考勤统计摘要”" - ], - "examples": [ - "dws attendance summary --user USER_ID --date 2026-03-12 --stats-type week", - "dws attendance summary --user USER_ID --date \"2026-03-12 15:00:00\" --stats-type month" - ] - }, - "attendance.get_user_attendance_record": { - "use_when": [ - "查询个人考勤详情" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询个人考勤详情”" - ], - "examples": [ - "dws attendance record get --user 011769261608 --date 2026-03-08", - "dws attendance record get --user USER_ID --date 2026-03-08 # 查询 userId: dws contact user search --keyword \"姓名\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "attendance.query_attendance_group_or_rules": { - "use_when": [ - "1. 先查考勤组和关联班次(即使排休也需要确认考勤组)", - "1. 先查考勤组并获取关联班次(先查后排)", - "查看考勤组和规则", - "用户只属于一个考勤组,直接查询即可确定", - "考勤组/考勤规则/打卡规则", - "自动获取当前用户的考勤组(用户只属于一个考勤组,无需选择)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询考勤组与考勤规则”" - ], - "examples": [ - "dws attendance rules --date <今天日期> --format json", - "dws attendance rules --date 2026-03-14" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.add_attachments": { - "use_when": [ - "把附件挂到指定日程", - "日程附件/给会议加文件/上传日程材料;添加" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“为日程添加附件。”所述变更时不要使用" - ], - "examples": [ - "dws calendar attachment add --event --files :report.pdf,:slides.pptx", - "dws calendar attachment add --event --files :report.pdf,:slides.pptx --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.add_calendar_participant": { - "use_when": [ - "参会人/与会者;邀请/添加", - "添加参会人(必须用 Step 1 返回的 eventId)" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“添加参与者”所述变更时不要使用" - ], - "examples": [ - "dws calendar attendee add --event --attendees ,", - "dws calendar attendee add --event --attendees --optional" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.add_meeting_room": { - "use_when": [ - "会议室/订会议室;给已有日程订会议室", - "预定会议室" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“预定会议室”所述变更时不要使用" - ], - "examples": [ - "dws calendar room add --event --rooms ", - "dws calendar room add --event --rooms --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.create_calendar_event": { - "use_when": [ - "会议室/订会议室;创建新日程并订会议室", - "创建日程 — 提取 eventId", - "创建日程时直接指定参会人 + 会议室", - "日程/会议/约会/日历;创建/约/给自己留时间块/个人日程", - "给自己留一个明天下午的时间块/建个个人日程;创建个人日程" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建新的日程,支持设置时间、参与者、提醒,以及预定会议室等功能。”所述变更时不要使用" - ], - "examples": [ - "dws calendar event create --title \"Q1 复盘会\" --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T15:00:00+08:00\"", - "dws calendar event create --title \"周会\" --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T15:00:00+08:00\" --attendees userId1,userId2" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.delete_calendar_event": { - "use_when": [ - "日程/会议/约会/日历;取消/删除" - ], - "avoid_when": [ - "用户未明确要求“删除日程”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws calendar event delete --id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.delete_meeting_room": { - "use_when": [ - "会议室/订会议室;取消预定" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“移除会议室”所述变更时不要使用" - ], - "examples": [ - "dws calendar room delete --event --rooms " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.get_calendar": { - "use_when": [ - "我有几个日历/查所有日历/别人共享给我的日历/他人共享给我的日历本;查指定日历本" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“根据日历id查询指定日历的信息。”" - ], - "examples": [ - "dws calendar book get --id primary", - "dws calendar book get --id CALENDAR_ID" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.get_calendar_detail": { - "use_when": [ - "日程/会议/约会/日历;详情" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取日程详情”" - ], - "examples": [ - "dws calendar event get --id ", - "dws calendar event get --id --calendar-id primary" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.get_calendar_participants": { - "use_when": [ - "参会人/与会者;查看" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查看参与者”" - ], - "examples": [ - "dws calendar attendee list --event " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.list_acls": { - "use_when": [ - "我的日历共享给了谁/谁能看我日历/日历权限/取消共享/把日历分享给xxx;查看我共享出去的情况(即谁有权访问我的日历)" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“调用本接口,获取用户主日历的访问控制列表。”" - ], - "examples": [ - "dws calendar acl list" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.list_calendar_events": { - "use_when": [ - "日程/会议/约会/日历;查看" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询当前用户指定日历本下的日程列表,按起止时间检索。”" - ], - "examples": [ - "dws calendar event list --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T18:00:00+08:00\"", - "dws calendar event list --calendar-id primary" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.list_calendars": { - "use_when": [ - "我有几个日历/查所有日历/别人共享给我的日历/他人共享给我的日历本;列表", - "查下xxx的日程安排;查询是否有共享关系" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询用户的所有日历,其中id = \"primary\"为主日历(name = \"我的日历\"),为固定值。”" - ], - "examples": [ - "dws calendar book list" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.list_meeting_room_groups": { - "use_when": [ - "会议室/订会议室;分组" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“会议室分组列表”" - ], - "examples": [ - "dws calendar room list-groups", - "dws calendar room list-groups --limit 20 --page 0" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.list_suggested_event_times": { - "use_when": [ - "日程/会议/约会/日历;推荐时间/什么时候有空/协调时间" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“根据参会人推荐可用时间”" - ], - "examples": [ - "dws calendar event suggest --users userId1,userId2 --duration 60", - "dws calendar event suggest --start \"2026-03-10T09:00:00+08:00\" --end \"2026-03-10T18:00:00+08:00\" --users userId1" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.query_available_meeting_room": { - "use_when": [ - "会议室/订会议室;哪个空闲", - "会议室/订会议室;按名找会议室(如「永澄亭」「永澄亭会议室」「约西湖厅」)", - "搜索空闲会议室", - "搜索空闲会议室,记下 roomId" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询 [startTime, endTime] 时间段内所有可用的会议室。”" - ], - "examples": [ - "dws calendar room search --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T15:00:00+08:00\"", - "dws calendar room search --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T15:00:00+08:00\" --group-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.query_busy_status": { - "use_when": [ - "同时查用户 + 会议室", - "有空吗/忙不忙/闲忙;查询会议室闲忙", - "有空吗/忙不忙/闲忙;查询用户闲忙", - "有空吗/忙不忙/闲忙;用户 + 会议室一起查", - "查会议室闲忙", - "查用户闲忙" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查询用户闲忙状态”" - ], - "examples": [ - "dws calendar busy search --users , --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T18:00:00+08:00\"", - "dws calendar busy search --rooms , --start \"2026-03-10T14:00:00+08:00\" --end \"2026-03-10T18:00:00+08:00\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.remove_calendar_participant": { - "use_when": [ - "参会人/与会者;移除" - ], - "avoid_when": [ - "用户未明确要求“移除参与者”、目标不清楚或尚未确认时不要使用" - ], - "examples": [ - "dws calendar attendee delete --attendees --event " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.respond": { - "use_when": [ - "日程/会议/约会/日历;接受/拒绝/暂定日程" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。”所述变更时不要使用" - ], - "examples": [ - "dws calendar event respond --id --status accepted", - "dws calendar event respond --id --status declined" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.search_calendar": { - "use_when": [ - "我有几个日历/查所有日历/别人共享给我的日历/他人共享给我的日历本;按名称搜索日历本" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“搜索当前用户拥有的日历本,支持按日历本名模糊搜索。”" - ], - "examples": [ - "dws calendar book search --query \"项目\"", - "dws calendar book search --query \"团队周报\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "calendar.update_calendar_event": { - "use_when": [ - "日程/会议/约会/日历;修改/改时间/改描述" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“修改现有日程的信息,支持更新标题、时间、地点等任意字段,需要组织者权限。”所述变更时不要使用" - ], - "examples": [ - "dws calendar event update --id --title \"新标题\"", - "dws calendar event update --id --desc \"新描述\" --timezone Asia/Tokyo" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.add_custom_group_role": { - "use_when": [ - "创建/添加群身份" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“添加群身份”所述变更时不要使用" - ], - "examples": [ - "dws chat group-role add --group --name \"管理员\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.add_emoji_reaction": { - "use_when": [ - "emoji回应/表情回应/给消息加表情" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“消息添加 emoji 回应”所述变更时不要使用" - ], - "examples": [ - "dws chat message add-emoji --conversation-id --msg-id --emoji \"赞\"", - "dws chat message add-emoji --conversation-id --msg-id --emoji \"鼓掌\"" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.add_group_member": { - "use_when": [ - "把张三拉进群;添加群成员", - "拉人进群/加群成员" - ], - "avoid_when": [ - "设管理员/取消管理员;设置群管理员" - ], - "examples": [ - "dws chat group members add --id --users userId1,userId2" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.add_robot_to_group": { - "use_when": [ - "加机器人到群", - "邀请机器人进群" - ], - "avoid_when": [ - "从群里移除机器人/踢机器人;移除群内机器人" - ], - "examples": [ - "dws chat group members add-bot --robot-code --id ", - "dws chat group members add-bot --group --robot-code " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.add_text_emotion": { - "use_when": [ - "文字表情回应/添加文字表情" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“添加文字表情”所述变更时不要使用" - ], - "examples": [ - "dws chat message add-text-emotion --conversation-id --msg-id --emotion-id --emotion-name \"赞\" --text \"nice\" --background-id im_bg_5" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.combine_forward_messages": { - "use_when": [ - "合并转发/批量转发/合并转发多条消息", - "合并转发/批量转发/合并转发多条消息;合并转发多条消息" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“合并转发消息”所述变更时不要使用" - ], - "examples": [ - "dws chat message combine-forward --src-conversation-id --msg-ids ,, --dest-conversation-id ", - "dws chat message combine-forward --src-conversation-id --msg-ids , --dest-conversation-id --uuid " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.create_and_send_card": { - "use_when": [ - "发卡片消息/推送流式卡片;创建并推送流式卡片" - ], - "avoid_when": [ - "更新卡片/流式更新卡片;流式更新卡片内容" - ], - "examples": [ - "dws chat message send-card --group ", - "dws chat message send-card --receiver " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.create_smart_conv_category": { - "agent_summary": "创建按群名称关键词或群成员自动匹配会话的智能分组", - "use_when": [ - "需要按群名称关键词或群成员自动归类会话时创建智能会话分组" - ], - "avoid_when": [ - "只需要普通静态会话分组,或不希望根据关键词和成员自动匹配会话时不要使用" - ], - "examples": [ - "dws chat category create-smart --name \"重点项目群\" --keywords \"项目,重点\"" - ], - "reviewed": true - }, - "chat.create_group_conversation": { - "use_when": [ - "帮我建一个项目群;创建群聊", - "建群/创建群聊" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建一个群聊,支持指定群名称、初始成员列表等参数。”所述变更时不要使用" - ], - "examples": [ - "dws chat group create --name \"Q1 项目冲刺群\" --users userId1,userId2,userId3" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.create_text_emotion": { - "use_when": [ - "创建文字表情/新建文字表情" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“创建文字表情”所述变更时不要使用" - ], - "examples": [ - "dws chat message create-text-emotion --emotion-name \"赞\" --text \"nice\"", - "dws chat message create-text-emotion --emotion-name \"感谢\" --text \"感谢\" --background-id im_bg_5" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.dismiss_group": { - "use_when": [ - "解散群/解散群聊", - "解散群/解散群聊;解散群聊" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“解散群聊”所述变更时不要使用" - ], - "examples": [ - "dws chat group dismiss --group " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.download_media": { - "use_when": [ - "下载聊天消息中的图片/视频/语音等资源到本地文件" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“下载聊天消息中的图片/视频/语音等资源到本地文件”" - ], - "examples": [ - "dws chat message download-media --type mediaId --resource-id --message-id --open-conversation-id --output ./photo.jpg", - "dws chat message download-media --type mediaId --resource-id --message-id --open-conversation-id --output ./downloads/photo.jpg" - ], - "interface_mode": "composite", - "availability": "available", - "interface_reason": "命令包含多个 RPC、条件分派或本地 HTTP/文件步骤,不能绑定为单一 interface_ref" - }, - "chat.forward_message": { - "use_when": [ - "转发消息/把消息转到另一个群;转发单条消息", - "转发消息/转发一条消息/把消息转发到另一个群" - ], - "avoid_when": [ - "合并转发/批量转发/合并转发多条消息;合并转发多条消息", - "转发话题/转发话题消息/话题转发到另一个群;转发话题消息" - ], - "examples": [ - "dws chat message forward --src-conversation-id --msg-id --dest-conversation-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.forward_topic": { - "use_when": [ - "转发话题/转发话题消息", - "转发话题/转发话题消息/话题转发到另一个群;转发话题消息" - ], - "avoid_when": [ - "仅需查询状态或预览结果、不应产生“转发某个话题到其他会话”所述变更时不要使用" - ], - "examples": [ - "dws chat message forward-topic --src-conversation-id --src-msg-id --src-thread-id --dest-conversation-id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.get_conv_info_by_group_id": { - "use_when": [ - "根据群号查群信息/群号查群/群号转openConversationId", - "根据群号查群信息/群号转openConversationId;群号查群聊信息" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“根据群号获取群聊信息”" - ], - "examples": [ - "dws chat group get-by-group-id --group-id 12345678" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.get_conversation_info": { - "use_when": [ - "获取会话的基础信息" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取会话的基础信息”" - ], - "examples": [ - "dws chat conversation-info --group --format json", - "dws chat conversation-info --user --format json" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.get_group_invite_url": { - "use_when": [ - "群邀请链接/入群链接/加群链接" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取群邀请链接”" - ], - "examples": [ - "dws chat group invite-url --group ", - "dws chat group invite-url --group --expires-seconds 86400" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.get_group_members": { - "use_when": [ - "查看群成员列表" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“查看群成员列表”" - ], - "examples": [ - "dws chat group members list --id " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.list_conversation_message_v2": { - "use_when": [ - "2. 拉取群消息", - "和某人的单聊聊天记录/拉某人单聊历史", - "拉取一下上周项目群的聊天记录;拉取会话消息", - "拉取和张三的单聊记录;拉取单聊消息", - "拉取和某人的单聊记录/单聊消息", - "某个群的聊天记录", - "聊天记录/会话消息/拉取会话" - ], - "avoid_when": [ - "DING消息/查DING/DING历史;查询 DING 消息列表", - "查看我今天的所有消息;全量会话消息", - "查看钉住的消息/Pin列表/钉住消息列表;拉取钉住消息列表", - "看看张三发给我的消息;按发送者查询消息" - ], - "examples": [ - "dws chat message list --group --time \"2025-03-01 00:00:00\"", - "dws chat message list --user --time \"2025-03-01 00:00:00\" --limit 50" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.list_conversations_by_category": { - "use_when": [ - "某个分组下有哪些会话;分组下会话列表", - "某个分组下的会话/分组会话列表" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“拉取用户指定自定义会话分组下的会话”" - ], - "examples": [ - "dws chat category list-conversations --category-id <分组ID>", - "dws chat category list-conversations --category-id <分组ID> --exclude-muted" - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.list_custom_group_roles": { - "use_when": [ - "查看群身份/群的自定义身份列表" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“拉取会话的群身份”" - ], - "examples": [ - "dws chat group-role list --group " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.list_group_bots": { - "use_when": [ - "群机器人列表/群里有哪些机器人/查看群机器人", - "群里有哪些机器人/查看群机器人/列出群机器人;查看群内机器人列表" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“获取群内所有机器人”" - ], - "examples": [ - "dws chat group bots --group " - ], - "interface_mode": "mcp", - "availability": "available" - }, - "chat.list_individual_chat_message": { - "use_when": [ - "拉取指定用户的单聊会话消息内容" - ], - "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“拉取指定用户的单聊会话消息内容”" - ], - "examples": [ - "dws chat message list-direct --time